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'
]);