首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用{id}参数返回的Laravel 9编辑路由未找到(404),尽管已定义

使用{id}参数返回的Laravel 9编辑路由未找到(404),尽管已定义
EN

Stack Overflow用户
提问于 2022-02-20 03:39:12
回答 1查看 1.5K关注 0票数 0

下面是我的路由/web.php文件中的路由定义示例。

代码语言:javascript
复制
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\WidgetController;

Route::controller(WidgetController::class)->name('widgets.')->prefix('widgets')->group(function () {
  Route::get('{id}/{slug}', 'show')->name('show');
  Route::get('create', 'create')->name('create')->middleware('auth');
  Route::post('store', 'store')->name('store')->middleware('auth');
  Route::get('{id}/edit', 'edit')->name('edit')->middleware('auth');
  Route::post('update', 'update')->name('update')->middleware('auth');
});

除一条外,列出的所有路线都很好。

代码语言:javascript
复制
Route::get('{id}/edit', 'edit')->name('edit')->middleware('auth');

不管出于什么原因,当它写成这样的时候,它完全可以正常工作:

代码语言:javascript
复制
Route::get('{id}', 'edit')->name('edit')->middleware('auth');

或者这个:

代码语言:javascript
复制
Route::get('{id}//edit', 'edit')->name('edit')->middleware('auth');

对于“路由::资源”,默认的是第一个“编辑”路由。然而,当像这样定义它时,我会得到一个404。我的关联控制器方法如下所示:

代码语言:javascript
复制
public function edit($id)
{
   // Rest of code here
}

可能是Laravel把“编辑”当成了第二个参数吗?但是,考虑到这是资源方法的默认设置,这并没有多大意义。

EN

回答 1

Stack Overflow用户

发布于 2022-02-20 04:18:54

试试看

路由:get(‘{id}/编辑’,‘编辑’)->nam

上图

路线:取得(‘{id}/{slug}’)

因为{slug}可能是任何东西,所以它更有可能先被执行。我建议把这个放在最后。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71191196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档