W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如果您希望使用自己的解析邏輯,應(yīng)該使用 Route::bind
方法。傳遞給 bind
方法的 閉包
將接收 URI 中大括號(hào)對(duì)應(yīng)的值,并返回您想要在該路由中注入的類的實(shí)例:
/**
* 定義你的路由模型綁定, pattern 過(guò)濾器等
*
* @return void
*/
public function boot()
{
Route::bind('user', function ($value) {
return App\Models\User::where('name', $value)->firstOrFail();
});
// ...
}
或者,您可以重寫 Eloquent 模型上的 resolveRouteBinding
方法。 此方法會(huì)接受 URI 中大括號(hào)對(duì)應(yīng)的值,并且返回你想要在該路由中注入的類的實(shí)例:
/**
* 檢查綁定值的模型
*
* @param mixed $value
* @param string|null $field
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function resolveRouteBinding($value, $field = null)
{
return $this->where('name', $value)->firstOrFail();
}
如果路由使用隱式綁定作用域,resolveChildRouteBinding
方法將用于解析父模型的子綁定:
/**
* 檢索子模型以獲取綁定值。
*
* @param string $childType
* @param mixed $value
* @param string|null $field
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function resolveChildRouteBinding($childType, $value, $field)
{
return parent::resolveChildRouteBinding($childType, $value, $field);
}
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)系方式:
更多建議: