【问题标题】:Laravel Routing space in parameters returns 404Laravel 参数中的路由空间返回 404
【发布时间】:2012-11-15 05:29:39
【问题描述】:

我的控制器(家庭)中有如下操作

public function action_test($keyword)
{
    echo $keyword;
}

当我传递没有空格的参数时它工作正常,如下所示

http://localhost/laravel/home/test/apple

但是当我传递带有空格的参数时会出现 404 错误,如下所示

http://localhost/laravel/home/test/green apple

它甚至在空间被编码时也不起作用

http://localhost/shop/public/home/test/green+apple

连这个都没有

http://localhost/shop/public/home/test/green%20apple

谁能帮帮我

【问题讨论】:

  • 对于蛞蝓,你应该坚持标准:下划线和连字符。也许从“$keyword”中删除连字符/下划线进行处理就可以了?
  • @crynobone 感谢您的提示!它在用作查询字符串时工作

标签: php routing controllers laravel


【解决方案1】:

http://www.laravel.com/docs/routing#controller-routing 您必须注册控制器的路由,例如: Route::controller('home'); 并检查您的控制器类名称是 Home_Controller,还要扩展 Controller 或 Base_Controller 类。

【讨论】:

    【解决方案2】:

    我不知道这种行为背后的想法,但是 (:any)、(:num) 和 (:any?) 不会接受带空格的字符串。如果您想将字符串传递给您的路线,您应该使用 (:all)。

    【讨论】:

      【解决方案3】:

      使用 (:all) 而不是 (:any) 注册您的路线。

      来自Laravel 文档:

      • (:any) : 允许 URI 段为任何字母数字字符串
      • (:all) : 无限制地捕获剩余的 URI

      你的路线可能看起来像这样:

      Route::get('home/test/(:all?)', 'home@test');
      

      有关该主题的更多信息,请访问 Laravel 论坛 here

      【讨论】:

        猜你喜欢
        • 2021-01-31
        • 1970-01-01
        • 2021-07-13
        • 1970-01-01
        • 2018-02-11
        • 1970-01-01
        • 2019-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多