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