【问题标题】:Laravel Controller method not found on Route with closure在关闭的路由上找不到 Laravel 控制器方法
【发布时间】:2014-09-21 10:46:51
【问题描述】:

我有以下路线:

Route::group(array('prefix' => 'admin', 'before' => 'auth'), function()
{
    Route::get('user/my-price/{user}/{sku}', function ($user, $sku)
    {
        return getMyPrice($user, $sku);
    });
});

我在 admin 下登录,除了我在 admin 组中其他路由顶部添加的这条新路由之外,其他所有路由都可以正常工作。

我正在通过以下 URL 访问路由:

http://domain.dev/sites/client112/public/admin/user/my-price/6146/UF-5E4Q-T8PO

当显然这是一个闭包而不是控制器引用时,什么会导致 Laravel 4.2 显示错误 Controller method not found?

【问题讨论】:

  • 我不确定你的根在哪里,但看起来你应该在你的 URL 中有 /admin/ 的位置。
  • @DaveMorrissey 我已经在帖子中更正了这一点。即使在这种情况下我只是使用闭包,我也没有 user 模型或控制器可能有关系吗?
  • 您的示例 URL 中仍有 /public/,这与您的路由配置不匹配。
  • 您是否在其他地方使用 RESTful 控制器路由,这将匹配相同的路由定义?
  • 您可能希望将其添加为您自己问题的答案并将其标记为已回答。它将帮助其他有同样问题的人。谢谢!

标签: php laravel laravel-4


【解决方案1】:

这是由我忘记的路由上设置的约束模式引起的:

Route::pattern('sku', '[0-9a-z]+');

更改该模式以在 SKU 中包含 - 作为有效字符允许路由工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2016-11-19
    • 2017-12-16
    • 2014-12-14
    • 1970-01-01
    • 2023-01-27
    相关资源
    最近更新 更多