Laravel资源不适用于自定义网址上的模型绑定

Dav*_*dos -1 resources model auto laravel

如果我使用这条路线:

Route::resource('monitor', 'UserMonitorController');
Run Code Online (Sandbox Code Playgroud)

然后在控制器中:

public function update(Request $request, UserMonitor $userMonitor) {}
Run Code Online (Sandbox Code Playgroud)

由谁自动生成

php artisan make:model -mcr UserMonitor
Run Code Online (Sandbox Code Playgroud)

$userMonitor是空的

Dav*_*dos 6

问题

原因是使用路由补丁

/监控

代替

/ usermonitor(作为控制器名称)

该变量必须与路由中的变量相同。在这种情况下,它是自动生成的:

php artisan route:list 
PUT|PATCH | api/monitor/{monitor}         | monitor.update    | App\Http\Controllers\UserMonitorController@update
Run Code Online (Sandbox Code Playgroud)

因此,解决方案是更改:

public function update(Request $request, UserMonitor $userMonitor) {}
Run Code Online (Sandbox Code Playgroud)

至:

public function update(Request $request, UserMonitor $monitor) {}
Run Code Online (Sandbox Code Playgroud)