我正在尝试在CompanyAdressController中创建三个不同的更新函数:defaultUpdate,contactUpdate和generalUpdate。
在第一种情况下,我试图通过api访问它们:
来自我的js app:
this.$http.put('http://127.0.0.1:8000/api/companyDefault/' + this.hospital.default.id, this.hospital.default)
和api内部路线:
Route::resource('/companyDefault', 'CompanyAddressController@defaultUpdate');
并在CompanyAddressController中:
public function defaultUpdate(Request $request, CompanyAddress $companyAddress)
{
...
}
我有一个错误:
"message": "Method [defaultUpdate@update] does not exist on [App\\Http\\Controllers\\CompanyAddressController].",
"exception": "BadMethodCallException",
我应该如何更正我的路线才能访问我的方法?或者我应该通过使用my api函数中的参数创建一个controller update
函数来实现不同的方式吗?
答案 0 :(得分:2)
您正在使用资源丰富的控制器检查laravel文档:https://laravel.com/docs/5.6/controllers#resource-controllers。注册资源控制器的正确语法是:
Route::resource('companyDefault', 'CompanyAddressController');
我认为这就是你想要的:
Route::put('/companyDefault', 'CompanyAddressController@defaultUpdate');
Route::put('/contactUpdate', 'CompanyAddressController@contactUpdate');
Route::put('/generalUpdate', 'CompanyAddressController@generalUpdate');