Laravel 5.4 - 路由模型绑定条件

时间:2017-06-04 12:38:06

标签: laravel laravel-5.4

我已经实现了路由模型绑定,如下所示:

路线:

Route::get('property/{property}', 'PropertyController@view');

控制器:

public function view(Property $property)
{
    $data = compact([
        'property'
    ]);

    return view('property.view', $data);
}

这很有效。但是,我想在Property模型中添加一个条件来检查active = 1。我该怎么做以及在哪里这样做?

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