Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 从Laravel资源控制器中的自动加载资源中删除查询范围_Laravel 5_Laravel 5.5 - Fatal编程技术网

Laravel 5 从Laravel资源控制器中的自动加载资源中删除查询范围

Laravel 5 从Laravel资源控制器中的自动加载资源中删除查询范围,laravel-5,laravel-5.5,Laravel 5,Laravel 5.5,在Laravel 5中,如果使用资源控制器,模型将自动加载并进入方法。 但是,我有一个查询范围来检查我的模型是否处于活动状态。对于这一特定情况,我希望删除该查询范围,但将其保留在类中的其他方法上 我可以看到我可以覆盖模型中的resolveRouteBinding。但这会覆盖所有方法,而不仅仅是一个方法 谢谢。我不知道有什么好方法可以做到这一点,但这里有一个解决方案应该是可行的 您可以使用2个资源路由组: Route::resource('photos'、'PhotoController'[ “参

在Laravel 5中,如果使用资源控制器,模型将自动加载并进入方法。
但是,我有一个查询范围来检查我的模型是否处于活动状态。对于这一特定情况,我希望删除该查询范围,但将其保留在类中的其他方法上

我可以看到我可以覆盖模型中的
resolveRouteBinding
。但这会覆盖所有方法,而不仅仅是一个方法


谢谢。

我不知道有什么好方法可以做到这一点,但这里有一个解决方案应该是可行的

您可以使用2个资源路由组:

Route::resource('photos'、'PhotoController'[
“参数”=>[
'photo'=>'photo\u no\u scope',
],
“仅限”=>[“编辑”,“更新”],
]);
路由::资源('photos'、'PhotoController'[
'除了'=>['edit','update'],
]);
然后你必须告诉拉威尔什么是
photo\u no\u scope
的意思。执行此操作的最佳位置是在您的
RouteServiceProvider
内:

类RouteServiceProvider扩展了ServiceProvider{
公共函数boot(){
父::boot();
//包括存档照片
路由::绑定('photo\u no\u scope',函数($id){
返回照片::withoutGlobalScopes()->findOrFail($id);
});
}
}

尚未测试,但您可能还必须更新控制器以查找
$photo\u no\u scope
参数,而不是
$photo

最后,我发现最干净的方法是在我想要删除全局作用域时只使用普通路由而不是资源路由