我在模型发布上有范围
public function scopeActive($query) {
return $query->where('active', true);
}
在PostController上,我有方法show:
public function show(Post $post) {
//
}
我如何才能将范围附加到show方法上,并对不活动的帖子进行abort(404)
?我需要在全球范围内这样做。如果添加全局作用域,则如果帖子未处于活动状态,则用户将无法编辑其帖子。
答案 0 :(得分:1)
您可以通过将解析逻辑放在RouteServiceProvider的boot
方法中来自定义解析逻辑:
Route::bind('post', function ($id) {
return App\Post::active()->find($id) ?? abort(404);
});