You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9:访问Show路由时重定向至Edit路由的实现问题

解决Laravel 9中资源路由show路径重定向到edit的问题

你遇到的问题核心是路由匹配顺序和针对性路由定义的问题,之前的Route::redirect没生效大概率是因为放在了资源路由之后,Laravel没机会匹配到它。下面给你两种可行的解决方式:

方式一:逐个资源定义重定向路由

在你的资源路由之前,单独为每个资源的show路径写重定向逻辑,这样能优先匹配到请求:

// 先定义currencies的show路径重定向
Route::get('currencies/{currency}', function ($id) {
    return redirect()->route('currencies.edit', $id);
});

// 再定义items的show路径重定向
Route::get('items/{item}', function ($id) {
    return redirect()->route('items.edit', $id);
});

// 你的原有资源路由(放在重定向路由之后)
Route::resources([
    'currencies' => 'CurrencyController',
    'items' => 'ItemController',
], [
    'except' => ['show']
]);

如果你用了路由模型绑定(比如控制器edit方法接收模型实例),可以改成更严谨的写法,自动验证资源是否存在:

// 引入模型类
use App\Models\Currency;
use App\Models\Item;

Route::get('currencies/{currency}', function (Currency $currency) {
    return redirect()->route('currencies.edit', $currency);
});

Route::get('items/{item}', function (Item $item) {
    return redirect()->route('items.edit', $item);
});

这种写法下,如果用户输入的id不存在,会直接返回404,不会跳转到不存在的edit页面。

方式二:正则批量匹配重定向

如果资源较多,不想逐个写路由,可以用正则匹配批量处理,同时限制只匹配指定资源:

Route::get('{resource}/{id}', function ($resource, $id) {
    // 只允许我们定义的资源进行重定向,避免干扰其他路由
    $validResources = ['currencies', 'items'];
    if (!in_array($resource, $validResources)) {
        abort(404);
    }
    // 拼接对应的edit路由名称并跳转
    return redirect()->route("{$resource}.edit", $id);
})->where('resource', 'currencies|items'); // 正则限制resource只能是这两个值

// 原有资源路由
Route::resources([
    'currencies' => 'CurrencyController',
    'items' => 'ItemController',
], [
    'except' => ['show']
]);

关键注意点

  • 所有重定向路由必须放在资源路由之前,因为Laravel是按路由定义顺序匹配的,先定义的路由会优先被匹配。
  • 如果你之前用Route::redirect('items/{id}', 'items/{id}/edit')没生效,本质也是顺序问题,把它移到资源路由前面就能正常工作,比如:
    Route::redirect('items/{id}', 'items/{id}/edit', 301);
    Route::redirect('currencies/{id}', 'currencies/{id}/edit', 301);
    Route::resources(...);
    
    这里加301是指定永久重定向,对SEO更友好,不加的话默认是302临时重定向。

内容的提问来源于stack exchange,提问作者MJ Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 16:09:26