我已经实现了路由模型绑定,如下所示:
路线:
Route::get('property/{property}', 'PropertyController@view');
控制器:
public function view(Property $property)
{
$data = compact([
'property'
]);
return view('property.view', $data);
}
这很有效。但是,我想在Property模型中添加一个条件来检查active = 1
。我该怎么做以及在哪里这样做?
答案 0 :(得分:0)
您可以注册显式绑定。将以下代码添加到RouteServiceProvider
。当段为property
时,这将应用于模型绑定。
Route::bind('property', function ($id) {
return \App\Property::where('id', $id)
->where('active', 1)
->firstOrFail();
});
如果您需要为每个结果全局应用此条件,则可以添加全局范围。 https://laravel.com/docs/5.4/eloquent#global-scopes