Laravel 7资源路线中的自动范围界定
有没有办法在资源路由中使用新的自动作用域?我尝试过的一切都不起作用:Laravel 7资源路线中的自动范围界定,laravel,laravel-7,Laravel,Laravel 7,有没有办法在资源路由中使用新的自动作用域?我尝试过的一切都不起作用: Route::apiResource('instances/{instance:id}/projects', 'ProjectController', [ 'except' => ['destroy'] ]); 下面的手动解决方案正在工作,但将在routes文件中造成混乱 Route::get('instances/{instance:id}/project/{project:id}',function(Ins
Route::apiResource('instances/{instance:id}/projects', 'ProjectController', [
'except' => ['destroy']
]);
下面的手动解决方案正在工作,但将在routes文件中造成混乱
Route::get('instances/{instance:id}/project/{project:id}',function(Instance $instance, Project $project){
return response()->json($project);
});
谢谢这可能对你有帮助
Route::group(['prefix'=>'instances/{instance:id}',function(){
路由::apiResource('project','ProjectController'[
'除了'=>['destroy']
]);
});
这可能是一个问题,因为您的模型位于其他目录中。您必须首先解析要注入的模型
public function boot()
{
parent::boot();
Route::model('instance', App\Instance::class);
Route::model('project', App\Project::class);
}
您必须显式地将模型绑定到键
Route::get('instances/{instance:id}/project/{project:id}',function(Instance $instance, Project $project){
return response()->json($project);
});
我有一个类似的问题,据我所知,需要在嵌套资源上指定自定义路由键以触发自动作用域。不单独指定每条路线的最简单方法可能是使用
parameters()
:
非常感谢你。我已经在project中尝试过了,但没有在project中尝试过。
Route::apiResource('instances.projects', 'ProjectController')->parameters([
'projects' => 'project:id'
]);