您好我正在尝试使用普通的html在Laravel中创建更新表单。我的修改表单的网址为http://localhost:8000/profile/sorxrob/edit
,sorxrob
是用户名。该网址中的代码是:
<form class="form-horizontal" role="form" action="" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input name="_method" type="hidden" value="PATCH">
//more inputs
</form>
在名为AccountController
的控制器中:
public function update(Request $request, $id)
{
$account = Accounts::findOrFail($id);
$input = $request->all();
$account->fill($input)->save();
return 'success';
}
单击更新按钮时收到错误MethodNotAllowedHttpException
。是因为我的行为等于什么?如果是,那么在那里路由的正确方法是什么?
答案 0 :(得分:2)
这是由于您的操作网址不正确的路由网址。使用以下
(1)首先在route.php文件中定义一个路由
Route::post('profile/{username}/edit', array('as' => 'profile.update', 'uses' => 'AccountController@update'));
(2)从表单标签中更改您的操作属性
action="{{ URL::route('profile.update', [$username]) }}"
此处$ username变量将从您的AccountController @ edit方法传递。