رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Route Model Binding
#1
در مورد این قابلیت جدید لاراول یه توضیحاتی میخواستم. دوستان اطلاعی در این مورد دارن؟

Route Model Binding

و همینطور
Binding A Parameter To A Model
پاسخ
تشکر شده توسط:
#2
ببینید تو route هایی که تعریف می کنیم برای تعریف پارامترها نام پارامتر رو داخل آکولاد قرار میدیم و بعد تو اکشن یا همون routes.php داخل closure به صورت متغیری به همون نام بهش دسترسی داریم مثال زیر رو نگاه کن :

Route::get('user/{id}', function($id){
	$user = AppUser::find($id);
	return $user->name;
});
وقتی کاربر آدرس http://localhost:8000/user/1 رو درخواست کنه مقدار 1 تو پارامتر id قرار می گیره و می تونیم با استفاده از اون اطلاعات موردنظرمون رو از مدل بدست بیاریم

حالا با روش model binding این دستور رو داخل کلاس RouteServiceProvider تو مسیر AppProviders این دستور را داخل متد boot می نویسید:
$router->model('id', 'AppUser');
همینطور که می بینی اسم پارامتر رو به متد model میدیم و بعدش هم نام مدلمون رو با namespace اش بهش میدیم

حالا اگه همون آدرس http://localhost:8000/user/1 رو درخواست کنید خودش میره از مدل رکوردی id اون برابر 1 هست رو بازیابی میکنه:
Route::get('user/{id}', function(AppUser $user){
	return $user->name;
});
فقط باید یک آبجکت از مدل رو بهش پاس بدیم و همینطور که می بینی کد خلاصه تر شده
موفقیت، نتیجه تشخیص درست است؛ تشخیص درست، نتیجه تجربه است؛ تجربه نیز اغلب نتیجه تشخیص نادرست است.



پاسخ
تشکر شده توسط: tux-world




کاربران در حال بازدید این موضوع: 1 مهمان