W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Laravel 模型綁定提供方便的方式將模型實體注入到您的路由中。例如,比起注入 User ID ,你可以選擇注入符合給定 ID 的 User 類實體。
首先,使用路由的 model 方法指定特定參數(shù)要對應(yīng)的類,您應(yīng)該在 RouteServiceProvider::boot 方法定義您的模型綁定:
綁定參數(shù)至模型
public function boot(Router $router)
{
parent::boot($router);
$router->model('user', 'App\User');
}
然后定義一個有 {user} 參數(shù)的路由:
Route::get('profile/{user}', function(App\User $user)
{
//
});
因為我們已經(jīng)將 {user} 參數(shù)綁定到 App\User 模型,所以 User 實體將被注入到路由。所以舉例來說,請求至 profile/1 將注入 ID 為 1 的 User 實體。
注意: 如果在數(shù)據(jù)庫中找不到匹配的模型實體,將引發(fā) 404 錯誤。
如果您想要自定「沒有找到」的行為,將閉包作為第三個參數(shù)傳入 model 方法:
Route::model('user', 'User', function()
{
throw new NotFoundHttpException;
});
如果您想要使用您自己決定的邏輯,您應(yīng)該使用 Route::bind方法。閉包通過 bind 方法將傳遞 URI 區(qū)段數(shù)值,并應(yīng)該返回您想要被注入路由的類實體:
Route::bind('user', function($value)
{
return User::where('name', $value)->first();
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: