Laravel 5 方法未找到异常

标签 laravel laravel-5

我使用 Laravel 5 并尝试更新表单:

 {!! Form::model($user, ['route' => ['edit', $user->id], 'method' => 'PUT']) !!}

 {!! Form::label('titel', 'First Name:'!!}
 {!! Form::text('titel', null,) !!}


<button type="submit">Update</button>
{!! Form::close() !!}

我的路线:

Route::post('edit/{id}', ['as' => 'edit', 'uses' => 'UserController@editUser']);

我的 Controller :

public function editUser($id){};

当单击更新按钮时,我在 RouteCollection.php 中收到 MethodNotAllowedHttpException

我检查了浏览器源代码,发现我使用的 Form::model(..) 生成了以下输出:

<form method="POST" action="http://localhost/myProject/public/edit/1" accept-charset="UTF-8"><input name="_method" type="hidden" value="PUT"><input name="_token" type="hidden" value="4nZlyfzzAZmTcZfThQ8gcR6cgEgYgR0ip0JZTKck">

表单内有属性 method="POST",隐藏输入有属性 value="PUT"。这对我来说似乎不正确。有任何想法吗?谢谢

最佳答案

您应该使用“更新”路由来实际保存数据(验证并将其保存到数据库)。 “编辑”路线是您用来生成编辑表单的路线。

您应该使用 PUT 方法来运行保存数据的方法。

此外,这里有一个小提示给您。了解 RESTful Controller 的工作原理。它们确实是完成您在这里所做的事情的简单方法(确实值得学习它们): https://laravel.com/docs/5.1/controllers

关于Laravel 5 方法未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35535027/

相关文章:

php - Laravel Ajax 响应和处理错误

php - Laravel 数据库查询优化

php - Auth::user()->username 和类似的非常慢

php - 来自同一浏览器的 laravel 和多 session

php - Laravel 正在使用我的旧电子邮件配置发送邮件

mysql - Laravel 在 Null 上加入

php - Laravel : How to add days to datetime field?

laravel - 使用 Laravel Lighthouse 的 Laravel 7 中的 CORS 错误

laravel - 如何为长时间运行的作业设置自定义 retry_after |拉维

php - 多对多关系在 laravel 中存储和更新