Laravel 5 Plain Html MethodNotAllowedHttpException

时间:2015-06-11 07:08:43

标签: laravel laravel-5

您好我正在尝试使用普通的html在Laravel中创建更新表单。我的修改表单的网址为http://localhost:8000/profile/sorxrob/editsorxrob是用户名。该网址中的代码是:

<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。是因为我的行为等于什么?如果是,那么在那里路由的正确方法是什么?

1 个答案:

答案 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方法传递。