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

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

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

Route Model Binding

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

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

اگر سرور لارول 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 اینگونه تعریف شود:

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

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

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

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

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

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

  • نام پارامتر 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 استفاده از مدل در route

شما بعد از مشاهده این جلسه آموزشی و مثال های آن، قادر خواهید بود به راحتی، مفهوم زیبا و جادویی 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 کامل توضیح داده شده است. این محصول بصورت کامل توسط گروه پشتیبانی پی استور تست و بازبینی شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد.

 

سرفصل‌های دوره برنامه‌نویسی وب با زبان PHP و فریم‌ورک لاراول 6

معرفی فریم ورک لارول

در این جلسه به معرفی کلیات و مقدمه ای از فریم ورک لاراول Laravel که محبوت ترین فریم ورک زبان برنامه نویسی PHP می باشد، پرداخته و مزایای بی نظیر آن اشاره می شود.


زبان آموزش: فارسی مدت زمان: 13 دقیقه مدرس: مهندس سالار عباپور  نمایش: رایگان


برای آموزش این بخش کلیک کنید.

نصب لاراول و پیش نیازهای آن

در این جلسه به آموزش نصب فریم ورک لاراول Laravel و پیش نیاز های آن پرداخته می شود.


زبان آموزش: فارسی مدت زمان: 20 دقیقه مدرس: مهندس سالار عباپور  نمایش: رایگان


برای آموزش این بخش کلیک کنید.

آدرس دهی در لارول 6

در این جلسه به نحوه کدنویسی و استفاده از فریم ورک لاراول  Laravel 6 پرداخته می شود آدرس دهی و ساخت صفحات از ابتدایی ترین آموزش های لارول است که در این قسمت بصورت کلی به آن اشاره می شود.


زبان آموزش: فارسی مدت زمان: 30 دقیقه مدرس: مهندس سالار عباپور  نمایش: رایگان


برای آموزش این بخش کلیک کنید.

معرفی کنترلر ها و استفاده از آن ها در لاراول Laravel 6

در این جلسه به توضیح و معرفی کنترلر ها و استفاده از آن ها در لاراول Laravel 6 پرداخته می شود. کنترلر‌ها به عنوان یکی از اساسی‌ترین و مهم‌ترین بخش‌های یک وب سایت و یا اپلیکیشن به‌حساب می‌آیند.


زبان آموزش: فارسی مدت زمان: 17 دقیقه مدرس: مهندس سالار عباپور  نمایش: رایگان


برای آموزش این بخش کلیک کنید.

استفاده از Bootstrap در لاراول 6

در این جلسه به استفاده از بوت استرپ Bootstrap، NMP و لاراول میکس در فریم ورک لاراول  Laravel 6 پرداخته می شود


زبان آموزش: فارسی مدت زمان: 17 دقیقه مدرس: مهندس سالار عباپور  نمایش: دانلود غیر رایگان


برای آموزش این بخش کلیک کنید.

طراحی قالب کلی سایت در لارول 6 LARAVEL

در این جلسه آموزش طراحی قالب کلی سایت در لارول 6 قرار داده شده است. برای طراحی قالب کلی سایت مفاهیم  استفاده از layout ها، معرفی دستور جدید npm برای رصد کردن تغییرات لحظه ای استایل ها، ایجاد فایل sccs برای هر فایل view و وارد کردن فایل های scss در فایل اصلی app.scss


زبان آموزش: فارسی مدت زمان: 33 دقیقه مدرس: مهندس سالار عباپور  نمایش: دانلود غیر رایگان


برای آموزش این بخش کلیک کنید.

تنظیمات دیتابیس و ساخت جدول در لاراول 6 LARAVEL

در این جلسه از مجموعه جلسات آموزش صفر تا صد لاراول 6 به بررسی و آموزش تنظیمات دیتابیس و ساخت جدول در لاراول 6 Laravel پرداخته می شود. تنظیمات دیتابیس یکی از مهم ترین قسمت در فریم ورک لاراول است. در لاراول 6 هم این تنظیمات با نسخه های قبلی تفاوت آن چنانی ندارد.


زبان آموزش: فارسی مدت زمان: 24 دقیقه مدرس: مهندس سالار عباپور  نمایش: دانلود غیر رایگان


برای آموزش این بخش کلیک کنید.

آموزش ELOQUENT و MODEL ها در لاراول 6 LARAVEL

در این جلسه از مجموعه جلسات آموزش صفر تا صد لاراول 6 به بررسی و آموزش ELOQUENT و MODEL ها در لاراول 6 Laravel پرداخته می شود. Eloquent ابزاری عالی جهت پیاده‌سازی انواع مختلف عملیات‌های محاسباتی و پردازشی پایگاه‌ داده یا همان دیتابیس (ORM مخفف Object-relational mapping) است.


زبان آموزش: فارسی مدت زمان: 27 دقیقه مدرس: مهندس سالار عباپور  نمایش: دانلود غیر رایگان


برای آموزش این بخش کلیک کنید.

کار با فرم ها و ثبت از طریق فرم در دیتابیس در لاراول 6

در این جلسه به بررسی و آموزش برای ثبت یک مقدار در جدول دیتابیس از فرم Bootstrap استفاده می شود. و همچنین روش مقابله با حملات csrf که یکی از مخرب ترین حملات هکری است، توضیح داده خواهد شد. به عبارتی پس از مشاهده این آموزش شما قادر خواهید بود برای ثبت مقادیر در جداول دیتابیس از فرم های Bootstrap استفاده کرده و با استفاده از روش منحصر به فرد LARAVEL از فرم های خود در مقابل حملات csrf محافظت نموده و با هر گونه درخواست های جعلی مقابله کنید.


زبان آموزش: فارسی مدت زمان: 30 دقیقه مدرس: مهندس سالار عباپور  نمایش: دانلود غیر رایگان


برای آموزش این بخش کلیک کنید.

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

در این جلسه از آموزش به توضیح و معرفی تزریق model در route یا استفاده از مدل در روت پرداخته شده و طریقه استفاده از model در route کامل توضیح داده شده است.


زبان آموزش: فارسی مدت زمان: 27 دقیقه مدرس: مهندس سالار عباپور  نمایش: دانلود غیر رایگان


برای آموزش این بخش کلیک کنید.

ویرایش EDIT، حذف DELETE و بروزرسانی UPDATE رکورد در لاراول

در این جلسه آموزش ویرایش Edit، حذف Delete و بروزرسانی Update رکورد در لاراول LARAVEL 6  با استفاده از متد های متد های PUT  یا PATCH قرار داده شده است.


زبان آموزش: فارسی مدت زمان: 27 دقیقه مدرس: مهندس سالار عباپور  نمایش: دانلود غیر رایگان


برای آموزش این بخش کلیک کنید.

جلسه دوازدهم: سیستم احراز هویت در لاراول 6

آموزش سیستم احراز هویت در لاراول 6 جهت احراز هویت ثبت نام و عضویت ورود و خروج است احراز هویت در لاراول 6 قدرتمند تر از سایر فریم ورک هاست.


زبان آموزش: فارسی مدت زمان: 40 دقیقه مدرس: مهندس سالار عباپور  نمایش: دانلود غیر رایگان


برای آموزش این بخش کلیک کنید.

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

  1. programstore

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

  2. sina

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

دیدگاه خود را بنویسید

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.