Php Laravel 5.1:如何设置更新记录的路径
我正在与laravel 5.1合作 我使用的是拉威尔的路线 我曾用于插入/更新,但仍停留在更新记录的路由中 下面是routes.php中用于重定向到编辑页面的路由Php Laravel 5.1:如何设置更新记录的路径,php,laravel-5.1,Php,Laravel 5.1,我正在与laravel 5.1合作 我使用的是拉威尔的路线 我曾用于插入/更新,但仍停留在更新记录的路由中 下面是routes.php中用于重定向到编辑页面的路由 Route::get('/company/edit/{id}','CompanyMasterController@edit'); Route::put('/company/update/{id}','CompanyMasterController@update'); 在my CompanyMasterController.php中
Route::get('/company/edit/{id}','CompanyMasterController@edit');
Route::put('/company/update/{id}','CompanyMasterController@update');
在my CompanyMasterController.php中
public function edit($id)
{
$company = CompanyMasters::find($id);
return view('companymaster.edit', compact('company'));
}
我在edit.blade.php中的操作
{!! Form::model($company,['method' => 'PATCH','action'=>['CompanyMasterController@update','id'=>$company->id]]) !!}
以及routes.php中此操作的路由
Route::get('/company/edit/{id}','CompanyMasterController@edit');
Route::put('/company/update/{id}','CompanyMasterController@update');
我的控制器更新操作
public function update($id)
{
$bookUpdate=Request::all();
$book= CompanyMasters::find($id);
$book->update($bookUpdate);
return redirect('/company/index');
}
现在,当我单击“提交”按钮时,它会显示:
MethodNotAllowedHttpException在RouteCollection.php中
我做错了什么?您出现此错误的主要原因是,您将表单设置为使用
补丁
方法提交,并且您已将路径设置为查找放置
方法
您拥有的两个初始选项在路由文件中的方法与表单中的方法相同,或者您也可以将路由设置为:
Route::match(['put', 'patch'], '/company/update/{id}','CompanyMasterController@update');
上述两种方法均可用于该路线
或者,您可以使用
route:resource()
这将处理所有基本的Restful路线
然后,为了更进一步,您可以将以下内容添加到路由文件中:
Route::model('company', 'App\CompanyMasters'); //make sure the namespace is correct if you're not using the standard `App\ModelName`
然后,您的资源路线将类似于:
Route::resource('company', 'CompanyMasterController');
然后在CompanyMasterController
中,可以键入提示的方法,例如
public function edit($id) {...}
将成为:
public function edit(CompanyMaster $company)
{
return view('companymaster.edit', compact('company'));
}
显然,如果你不想,你不必使用这种方法
希望这有帮助 Route::put是正确的,controller方法是正确的,但是在形式上,您忘记选择正确的方法-它也是“put”而不是“PATCH”。@Jazz如果您想更进一步,我已经为答案添加了一个更新。很高兴我能帮忙!谢谢你的详细解释。我也尝试了这些步骤。