Php 如何更新laravel5中数据库中的现有行

Php 如何更新laravel5中数据库中的现有行,php,laravel-5,Php,Laravel 5,我是laravel的新手,我想更新数据库中的现有行,但当我单击视图中的发送按钮(例如127.0.0.1/laravel/public/Article/update/3)时,我遇到以下错误: MethodNotAllowedHttpException在RouteCollection.php第201行: 这是我的密码 Route Route::get('Article/edit/{id}','ArticleController@edit'); Route::get('Article/updat

我是laravel的新手,我想更新数据库中的现有行,但当我单击视图中的发送按钮(例如127.0.0.1/laravel/public/Article/update/3)时,我遇到以下错误:

MethodNotAllowedHttpException在RouteCollection.php第201行:

这是我的密码

Route


Route::get('Article/edit/{id}','ArticleController@edit');

Route::get('Article/update/{id}','ArticleController@update');

使用Laravel解决路由问题的最简单方法是使用“artisan”

如果使用此命令:

php artisan route:list
您将看到所有可用的路由和HTTP谓词。您的错误在RouteCollection中,因此您可以通过查看app/http/routes.php文件来解决这些问题

您定义了一条路线,如下所示:

Route::get('Article/update/{id}','ArticleController@update');
{!! Form::model($change ,['method'=>'patch' , 'url'=>['Article/update' , $change->id ]]) !!}
然后通过您的表单调用该路线,如下所示:

Route::get('Article/update/{id}','ArticleController@update');
{!! Form::model($change ,['method'=>'patch' , 'url'=>['Article/update' , $change->id ]]) !!}
您的routes.php GET定义与表单的修补程序方法不匹配,因此您将获得一个方法不允许的异常,因为修补程序路由未定义

在routes.php文件中需要这行代码:

我强烈建议使用此方法,而不是单独定义每个方法:

Route::resource('article', 'ArticleController');
然后使用artisan再次运行以下命令以查看创建的所有管线:

php artisan route:list

使用Laravel解决路由问题的最简单方法是使用“artisan”

如果使用此命令:

php artisan route:list
您将看到所有可用的路由和HTTP谓词。您的错误在RouteCollection中,因此您可以通过查看app/http/routes.php文件来解决这些问题

您定义了一条路线,如下所示:

Route::get('Article/update/{id}','ArticleController@update');
{!! Form::model($change ,['method'=>'patch' , 'url'=>['Article/update' , $change->id ]]) !!}
然后通过您的表单调用该路线,如下所示:

Route::get('Article/update/{id}','ArticleController@update');
{!! Form::model($change ,['method'=>'patch' , 'url'=>['Article/update' , $change->id ]]) !!}
您的routes.php GET定义与表单的修补程序方法不匹配,因此您将获得一个方法不允许的异常,因为修补程序路由未定义

在routes.php文件中需要这行代码:

我强烈建议使用此方法,而不是单独定义每个方法:

Route::resource('article', 'ArticleController');
然后使用artisan再次运行以下命令以查看创建的所有管线:

php artisan route:list

回答得好,比我的好+1@KyleGood答案,比我的好+1@KyleYou正在使用get路由,您希望它捕获补丁或POST请求。看到错误了吗?它不起作用,也不能帮助我或其他任何人找出到底什么是不起作用的。说真的,如果你不想帮助我们,那为什么要浪费你或我们的时间呢?对不起,我英语说得不好,但我测试你的解决方案时遇到了同样的错误,我测试了另一种方法来调试这个错误,但我不知道到底什么不起作用!!!!路由::获取'Article/update/{id}','ArticleController@update'; 这是错误的。它必须是Route::patch'Article/update/{id}','ArticleController@update';您正在使用get路由,并且希望它捕获修补程序或POST请求。看到错误了吗?它不起作用,也不能帮助我或其他任何人找出到底什么是不起作用的。说真的,如果你不想帮助我们,那为什么要浪费你或我们的时间呢?对不起,我英语说得不好,但我测试你的解决方案时遇到了同样的错误,我测试了另一种方法来调试这个错误,但我不知道到底什么不起作用!!!!路由::获取'Article/update/{id}','ArticleController@update'; 这是错误的。它必须是Route::patch'Article/update/{id}','ArticleController@update';