Laravel:尝试在一个控制器中创建三个更新功能

时间:2018-05-09 07:29:03

标签: laravel

我正在尝试在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函数来实现不同的方式吗?

1 个答案:

答案 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');