4 回答

TA貢獻1789條經(jīng)驗 獲得超10個贊
您的兩個路由 URI 模式相同,因此您需要在路由之前定義路由resource
:
Route::get('/admin/users/{user}/show', 'UsersController@show')->name('users.show'); Route::resource('/admin/users', 'UsersController')->except(['show']);

TA貢獻2041條經(jīng)驗 獲得超4個贊
我找到了這個問題的解決方案
編輯這個文件:
/app/Exceptions/Handler.php
添加這一行
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
和
public function render($request, Throwable $exception)
{
if ($exception instanceof MethodNotAllowedHttpException)
{
abort(404);
}
return parent::render($request, $exception);
}

TA貢獻1818條經(jīng)驗 獲得超11個贊
這是因為您的路線不是 404 錯誤,就像您在::resource
創(chuàng)建路線時使用的那樣,它使用show()
與update()
和destroy()
方法相同的路線,但使用不同的請求動詞。
GET /photos/{photo} PUT/PATCH. /photos/{photo} DELETE /photos/{photo}
在文檔中了解更多相關信息https://laravel.com/docs/7.x/controllers#resource-controllers
當您指定except(['show'])
要刪除 get 路由時,但 PUT/PATCH 和 DELETE 方法的路由仍然存在。

TA貢獻1869條經(jīng)驗 獲得超4個贊
嘗試替換except(['show'])
為
->only(['index', 'create', 'store', 'update', 'destroy'])
這對你的情況來說效果很好。
- 4 回答
- 0 關注
- 165 瀏覽
添加回答
舉報