Laravel 资源不适用于自定义模型绑定 url

Laravel Resources doesn't work with model binding on custom url

如果我使用这条路线:

Route::resource('monitor', 'UserMonitorController');

然后在控制器中:

public function update(Request $request, UserMonitor $userMonitor) {}

自动生成
php artisan make:model -mcr UserMonitor

$userMonitor为空

问题

原因是使用路由补丁

/monitor

而不是

/usermonitor (as controller name)

解决方案

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

php artisan route:list 
PUT|PATCH | api/monitor/{monitor}         | monitor.update    | App\Http\Controllers\UserMonitorController@update

所以解决办法是改成:

public function update(Request $request, UserMonitor $userMonitor) {}

收件人:

public function update(Request $request, UserMonitor $monitor) {}