当我尝试编辑表单时,它给出了这个错误:PUT方法不支持此路由。支持的方法:GET、HEAD。而我的路线是:
路线:
Route::get('/articles', 'ArticlesController@index');
Route::post('/articles', 'ArticlesController@store');
Route::get('/articles/create', 'ArticlesController@create');
Route::get('/articles/{article}', 'ArticlesController@show');
Route::get('/articles/{article}/edit', 'ArticlesController@edit');
Route::get('/articles/{article}', 'ArticlesController@update');
路线列表:
--------+----------+-------------------------+------+------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+-------------------------+------+------------------------------------------------+------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | about | | Closure | web |
| | GET|HEAD | api/user | | Closure | api |
| | | | | | auth:api |
| | GET|HEAD | articles | | AppHttpControllersArticlesController@index | web |
| | POST | articles | | AppHttpControllersArticlesController@store | web |
| | GET|HEAD | articles/create | | AppHttpControllersArticlesController@create | web |
| | GET|HEAD | articles/{article} | | AppHttpControllersArticlesController@update | web |
| | GET|HEAD | articles/{article}/edit | | AppHttpControllersArticlesController@edit | web |
+--------+----------+-------------------------+------+------------------------------------------------+------------+
控制器:
public function update($id)
{
$article = Article::find($id);
$article->title = request('title');
$article->excerpt = request('excerpt');
$article->body = request('body');
$article->save();
return redirect('/articles/'. $article->id);
}
您的路由都不是Route::put()
,您只有Route::get()
和Route::post()
。
如果你试图使用PUT的update
方法,你需要声明你的路由像这样:
Route::put('/articles/{article}', 'ArticlesController@update');
如果你没有在你的路由中使用资源,那么使用这些路由:
web.php
Route::get('/articles', 'articlesArticlesController@index');
Route::get('/articles/create', 'articlesArticlesController@create');
Route::post('/articles/create', 'articlesArticlesController@store');
Route::get('/articles/{article}', 'articlesArticlesController@show');
Route::get('/articles/{article}/edit', 'articlesArticlesController@edit');
Route::get('/articles/{article}/edit', 'articlesArticlesController@update');
app/Http/控制器:
<?php
namespace AppHttpControllersarticles;
use AppHttpRequestsUserArticleRequest;
use IlluminateHttpRequest;
use AppHttpControllersController;
//---Constructor Function
public function __construct() {
$this->middleware('auth:sanctum');
}//---End of Function Constructor
public function index() {
}
public function create() {
}
public function store(ArticleRequest $request) {
}
public function show($article) {
}
public function edit($article) {
}
public function update(ArticleRequest $request, $article) {
}
?>