我正在开发Laravel 8应用程序,在该应用程序中我嵌套了资源URL。
根据我的路线定义,一个用户可以有多个位置,每个位置可以有多条内容。
Route::resource('locations', LocationController::class);
Route::resource('locations.contents', ContentController::class);
所以当我打开类似的URL时
/位置/3/内容/1
它永远不会检查id为1的内容是否属于其父级(即id为3的位置(。
我原以为,它应该通过Laravel框架返回404页,因为内容模型(id为1(实际上属于位置模型(id 2(
所以所有
/位置/1/内容/1-应该工作
/位置/3/内容/1-不应该工作。
有人能帮我吗?
通过为路由指定作用域选项,它开始工作。
我必须设置作用域,即使它应该是由框架自动设置的。
Laravel文件中提到。
路线应为
Route::resource('locations', LocationController::class);
Route::resource('locations.contents', ContentController::class)->scoped([
'locations' => 'location:id',
'contents' => 'content:id',
]);