首页 > 解决方案 > 当我的索引和创建路由工作时,为什么我的编辑和删除方法会返回“404 not found”

问题描述

Laravel 版本已经更新,路由现在需要一个对象,而不是我上次使用它时的 id。

我的路线: 路线 路线资源

当我尝试传递控制器中的方法想要的 $item 对象时。我得到一个 404 not found 并且我的日志没有返回......这意味着该函数没有运行。当 $item obj 未通过函数时,该函数意识到缺少参数,因此刀片将方法识别为与控制器中的方法相同。

在 Blade 中调用编辑函数:

刀片代码

控制器代码:

在此处输入图像描述

我感谢任何帮助。

标签: phplaravelroutes

解决方案


您的路线顺序可能是错误的

当您首先定义显示路线/item/{item}然后使用/item/createlaravel 创建时会认为“创建”是 id(或引用)

最好的办法是拥有

  1. 索引
  2. 创造
  3. ……
  4. 节目

代码示例正确

    Route::get('/', ProductIndex::class)->name('product.index');
    Route::get('/new', ProductCreate::class)->name('product.create');
    Route::get('/{product}', ProductShow::class)->name('product.show');

代码示例错误

    Route::get('/', ProductIndex::class)->name('product.index');
    Route::get('/{product}', ProductShow::class)->name('product.show');
    Route::get('/new', ProductCreate::class)->name('product.create');


推荐阅读