laravel:8此路由不支持PUT方式.支持的方法:GET、HEAD



当我尝试编辑表单时,它给出了这个错误: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) {
}
?>

最新更新