• مقالات آموزشی
    • آموزش برنامه نویسی
    • آموزش الگوریتم
    • آموزش شبکه های کامپیوتری
    • آموزش های عمومی
  • ترجمه مقاله
    • لیست ترجمه کامل مقالات
    • لیست ترجمه مفهومی مقالات
  • تحقیق و پژوهش
    • لیست داکیومنت پایان‌نامه
    • لیست داکیومنت سمینار
  • پیاده سازی
    • سی پلاس پلاس ++C
    • برنامه نویسی OpenGL
    • سی شارپ #C
    • پایتون Python
    • اندروید Android
    • پی اچ پی PHP
    • متلب Matlab
  • پاورپوینت
    • پاورپوینت الگوریتم های بهینه سازی
    • پاورپوینت شبکه‌های کامپیوتری
    • پاورپوینت مهندسی کامپیوتر
    • پاورپوینت یادگیری ماشین
    • پاورپوینت درس و تحقیق
    • قالب آماده پاورپوینت
  • فیلم آموزشی
    • لیست فیلم های آموزشی
  • قالب آماده
    • لیست قالب آماده HTML
  • دانلود رایگان
  • مجله پی استور
  • ابزارهای آنلاین
    • برنامه نویسی آنلاین
    • تبدیل مبنای آنلاین
  • سفارش تدریس آنلاین
  • آموزش برنامه نویسی
  • آموزش الگوریتم
  • آموزش شبکه
  • آموزش عمومی

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • درباره ما
  • تماس با ما
  • سفارش تدریس آنلاین
پی استور
0

ورود و ثبت نام

مقالات آموزشی
  • ترجمه مقاله
    • لیست ترجمه کامل مقالات
    • لیست ترجمه مفهومی مقالات
  • تحقیق و پژوهش
    • لیست داکیومنت پایان‌نامه
    • لیست داکیومنت سمینار
  • پیاده سازی
    • سی پلاس پلاس ++C
    • برنامه نویسی OpenGL
    • سی شارپ #C
    • پایتون Python
    • اندروید Android
    • پی اچ پی PHP
    • متلب Matlab
  • پاورپوینت
    • پاورپوینت الگوریتم های بهینه سازی
    • پاورپوینت شبکه‌های کامپیوتری
    • پاورپونت مهندسی کامپیوتر
    • پاورپوینت یادگیری ماشین
    • پاورپوینت درس و تحقیق
      • عمومی
      • مشاهیر و اشخاص
      • واقعیت مجازی
      • طراحی سایت
      • برنامه نویسی
      • علوم کامپیوتر
      • اینترنت اشیاء
      • سیستم عامل
      • ارز دیجیتال
      • کسب و کار
      • تکنولوژی
      • علوم
    • قالب آماده پاورپوینت
  • فیلم آموزشی
    • لیست فیلم های آموزشی
  • قالب آماده
    • قالب آماده HTML
  • مجله پی استور
  • ابزارهای آنلاین
    • برنامه نویسی آنلاین
    • تبدیل مبنای آنلاین

آموزش روت مدل بایندینگ Route Model Binding در لاراول 6

خانهفروشگاهبرنامه نویسیطراحی وبآموزش روت مدل بایندینگ Route Model Binding در لاراول 6
تنظیمات دیتابیس در لاراول 6

روت مدل بایندینگ Route Model Binding در لاراول چیست؟

Route Model Binding در لاراول امکانی فراهم می کند تا بتوان یک نمونه از مدل Model را در Route تزریق کرد. در Laravel ارتباط کاربران با برنامه یا اپلیکیشن یا سایت از طریق فایل های view و route ها می باشد. اگر بخواهیم مفهوم استفاده از مدل در route را به درستی بیان کنیم باید بدانیم Request چیست؟

در فایل های view هر لینک یا دکمه ای که مشاهده می کنید، در واقع یک route برایش تعریف شده است. شما با هر کلیک یک درخواست یا Request ارسال می کنید اما چون پشت هر دکمه، لینک و آدرسی ( تگ a، دکمه submit و …) یک روت route تعریف شده است، درواقعیت درخواست یا Request شما به Route ها سپرده و واگذار می شود.

وظیفه Route ها تصمیم گیری درمورد درخواست شماست. بدین صورت که request را به مقصدی که برایش تعریف کرده اند، می فرستد. این مقصد می تواند یک متد در یک Controller و یا یک Closure باشد که بستگی به تعریف route توسط برنامه نویس دارد. درخواست ها در مقصد پردازش خواهند شد. اما نکته جالب این است که ما میتوانیم یک یا چند پارامتر را هم با request به route بفرستیم. مثلا فرض کنیدیک تگ a داریم که href آن اینگونه تعریف شده است:

<a href="/posts/1">نمایش پست </a>

و در فایل web.php این روت یا مسیر را با یک Closure اینگونه تعریف کرده ایم:

Route::get('/posts/{id}', function($id){
dd($id);	
});

اگر سرور لارول run باشد (php artisan serve) و کاربر روی لینک کلیک کند یا در آدرس بار مرورگر تایپ کند عبارت “1”در صفحه چاپ خواهد شد. در مثال بالا ما یک پارامتر تحت عنوان id را در لینک قرار دادیم. کاربر با کلیک بر روی آن، این پارامتر را از طریق request به route منتقل کرد. route نیز این پارامتر را به Closure انتقال داد تا پردازش شود. در کلوژر پردازش ما به این صورت شد که از پارامتر id، dye and dump یا dd() گرفتیم تا پارامتر را نشان بدهیم.

اساس کار Route Model Binding یا تزریق model در route

ما توانستیم داده ای را از طریق Route انتقال دهیم پس همچنین می توانیم id هر پست را به پردازشگر مقصد، انتقال دهیم تا post با id  مورد نظر از database گرفته شود. حال فرض کنید تمام پست هایی که در جدول posts موجود است به صورت لیست در یک صفحه آورده شده و ما میخواهیم با کلیک بر روی هر یک، اطلاعات پست مربوطه را ببینیم. برای این کار باید برای هر کدام از پست ها تگ a اینگونه تعریف شود:

<a href="/posts/{{$post->id}}" >نمایش پست</a>

(Id هر پست به Route انتقال داده می شود.) و در فایل web.php، مسیر یا Route مربوط به این لینک را اینگونه تعریف می کنیم:

Route::get('/posts/{post_id}', function($post_id){
     $post = Post::findOrFail($id);
     dd($post);	
});

با این کد اطلاعات هر پست به محض کلیک روی لینکش، نمایش داده خواهد شد. این کد کاملا صحیح بوده و کار خواهد کرد، اما Laravel پا فراتر گذاشته و امکانات جالبی برایمان فراهم ساخته است که به عنوان Route Model Binding از آن یاد می شود. به این صورت که ما میتوانیم به جای تزریق id پست به route و سپس جستجوی پست با id مربوطه در دیتابیس، خود پست را بهroute تزریق کنیم و در کنترلر (Controller) یا Closure (کلوژر)، post با همان id را دریافت کنیم :

Route::get('/posts/{post}', function(App\Post $post){
     dd($post);	
});

نتیجه و جواب هر دو کد بالا یکی است اما کد دوم خوانا تر، زیباتر و کوتاه تر است. به این کار Route Model Binding می گویند. درواقع مدل را به روت تزریق کردیم. لاراول به قدری هوشمند است که به محض خواندن کد دوم، میداند که باید با ID ها کار کند اما در پشت پرده. لاراول می فهمد که پیدا کردن $post نیازمند جستجو در ستون id جدول posts است. پس خودلاراول، کد اول را در پشت صحنه اجرا می کند:

$post = Post::findOrFail($id);

استفاده از Route Model Binding

استفاده از Route Model Binding یا inject model into route بسیار راحت است اما باید 3 قانون زیر را رعایت کرد:

  • نام پارامتر route که داخل علامت {} درج می شود باید با نام MODEL همخوانی داشته باشد، یعنی نام پارمتر باید همان نام مدل باشد اما با حرف اول کوچک. مثلا در مورد مدل User، نام پارامتر بایدuser باشد.
  • استفاده از type hint. یعنی نام مدل و نام پارامتر هر دو در ورودی Closure یا متد کنترلر درج شود:
function(App\Post $post)
  • نام پارامتر route همان {post} با نام پارامتر کلوژر، $post ، باید برابر باشد.

مزایای استفاده از Route Model Binding

  • کد های زیباتر
  • حجم کد کم یا تعداد کد های کمتر

در بسیاری از منابع و مراجع آموزشی، تعاریف زیر دیده می شوند:

Route Model Binding چیست؟ چسباندن مدل به روت یا اتصال Model به Route

مغهوم Route Model Binding چیست؟ تزریق Model به) Route تزریق مدل در روت(

معنی Route Model Binding چیست؟ استفاده از Model در Route

معنی و مفهوم Route Model Binding چیست؟ پس کردن Model به Route یا تزریق نمونه ای از Model یه Route

معنی و مفهوم Route Model Binding چیست؟ استفاده از مدل در route

معنی و مفهوم Route Model Binding چیست؟ استفاده از مدل در روت

شما بعد از مشاهده این جلسه آموزشی و مثال های آن، قادر خواهید بود به راحتی، مفهوم زیبا و جادویی route model binding را در سرتاسر سایت، برنامه یا اپلیکیشن لاراولی تان پیاده کرده و کدهای زیباتر و در عین حال با حجم کمتر بنویسید. شما خواهید توانست در متد های show create update delete و… از این امکان به خوبی و آسانی استفاده کنید.

منابع:

1. https://laravel.com/docs/5.8/routing
2. https://scotch.io/tutorials/cleaner-laravel-controllers-with-route-model-binding
3. https://vegibit.com/route-model-binding-in-laravel/
4. https://medium.com/@winni4eva/laravels-route-model-bindings-f051b088e542
5. https://laracasts.com/series/laravel-from-scratch-2017/episodes/9

برای مشاهده جلسه یازدهم ( ویرایش EDIT، حذف DELETE و بروزرسانی UPDATE رکورد ) کلیک کنید.


مشخصات فیلم آموزشی

نام اثر : فیلم آموزش صفر تا صد لاراول – جلسه دهم: آموزش روت مدل بایندینگ Route Model Binding در لاراول 6

مدرس : مهندس سالار عباپور

مدت زمان : 27 دقیقه

زبان آموزش : فارسی

حجم فایل : یک فایل با حجم 40 مگا بایت

فرمت ویدئو : MP4 با کیفیت بالا


پیش نمایش

درباره محصول

فیلم آموزش صفر تا صد لاراول – جلسه دهم: آموزش روت مدل بایندینگ Route Model Binding در لاراول 6 محصولی است که در این پست به آن پرداخته شده است.  در این آموزش به توضیح و معرفی تزریق model در route یا استفاده از مدل در روت پرداخته شده و طریقه استفاده از model در route کامل توضیح داده شده است. این محصول بصورت کامل توسط گروه پشتیبانی پی استور تست و بازبینی شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد.

امتیاز
5.00 از 2 رأی
5.00 2 رای
29,000 تومان
تاریخ انتشار: 16 مهر 1398
تاریخ بروزرسانی: 12 خرداد 1399
حجم فایل: 40 مگابایت
فرمت فایل mp4
نسخه: 1.0
شناسه اثر: ندارد
هماهنگی با: laravel7
دانلود شده توسط: 2 نفر

تاکنون 2 نفر این محصول را تهیه کرده اند و 2 نظر برای آن ثبت شده است.

نظرات و دیدگاه ها
  • sina
    27 مهر 1398
    امتیاز 5 از 5
    پاسخ

    آموزش جامعی بود. ممنون مهندس

  • مدیریت و پشتیبانی
    16 مهر 1398
    امتیاز 5 از 5
    پاسخ

    نظرات و پیشنهادات خود را با ما در میان بگذارید.

قوانین ثبت دیدگاه

  • لطفاً دیدگاه های خود را فارسی تایپ کنید.
  • دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
  • از درج دیدگاه های تکراری پرهیز نمایید.
  • سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.

لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته‌بندی موضوعی: برنامه نویسی طراحی وب لاراول Laravel

قیمت 29,000 تومان

افزودن به علاقه مندی ها
امتیاز
5.00 از 2 رأی
5.00 2 رای
29,000 تومان

تاریخ انتشار: 16 مهر 1398
تاریخ بروزرسانی: 12 خرداد 1399
حجم فایل: 40 مگابایت
فرمت فایل mp4
نسخه: 1.0
شناسه اثر: ندارد
هماهنگی با: laravel7
دانلود شده توسط: 2 نفر

2 بازخورد (مشاهده نظرات)

قیمت: 29,000 تومان

تماس با ما
  • دفتر پشتیبانی: 04144225175 (ساعت کاری 8:00 الی 16:00)
  • آی دی تلگرام: programerPstore
درباره پی استور

تیم توسعه پی استور با هدف ارائه مطالب مفید علمی در گرایش های مختلف پروژه های علمی مختلف را جمع آوری می کند و در قالب یک محصول تست شده و قابل اجرا همراه با توضیحات و نحوه اجرا، انتشار می دهد. امید است با عنایت الهی و کوشش اساتید و دانشجویان همراهمان بتوانیم قدم کوچکی در تولید محتوای علمی کشور داشته باشیم.

مجوز های اخذ شده
اینماد نشان ملی   پروانه نشر دیجیتال
  • حساب کاربری من
  • سوالات متداول
  • راهنمای خرید و دانلود
پی استور
  • همکاری با ما
  • قوانین و مقررات
  • حریم خصوصی
تمامی حقوق برای پی استور محفوظ است.
keyboard_arrow_up