【问题标题】:Laravel generates wrong URLsLaravel 生成错误的 URL
【发布时间】:2014-05-09 00:41:28
【问题描述】:

我将 Laravel 安装在一个子目录中,例如: 根 - mylaravel

当我使用命令生成 URL 时:{{ URL::route('controller.show', $controller->slug) }}

它会生成一个 URL,如:http://localhost/controller/show/asdf 但应该是:http://localhost/mylaravel/controller/show/asdf

在 app.php 中我尝试过:

  • 'url' => 'http://localip/phptodomanager'
  • 'url' => 'http://localhost/phptodomanager'

【问题讨论】:

  • 发布您的路线文件。
  • 使用虚拟主机,检查this answer

标签: php laravel


【解决方案1】:

在 routes.php 中使用带前缀的分组:

Route::group(array('prefix' => 'mylaravel'), function() {
    // your routes go here
});

如文档中的http://laravel.com/docs/routing#route-prefixing

【讨论】:

  • 分组有什么帮助?
  • 前缀被添加到所有生成的命名路由中,你想要什么,或者至少你要求什么
  • 我不是操作员。 mylaravel 可能是 localhost 下的文件夹(很可能是场景)。所以它不需要分组。我的猜测是,restful 控制器与 manuel rotuing 有一些混合。
  • 对,mylaravel 是一个子目录。希望有其他解决方案,否则我需要将所有控制器动作包装成组?!
  • 把所有的路由都放到这个组里,不需要每条路由都这样做。 @itachi 抱歉,没注意到 :)
【解决方案2】:

您正在使用资源控制器。

查看命名约定here

没有有任何名为controller.show

的路由

路由可以是ProjectController下的projects.show

您将通过http://localhost/mylaravel/projects/show/{project}访问它

控制器中的哪个,

public function show($project)
{

}

您正在混合所有路线,我敢肯定,您也在编写自己的路线。不要混合使用资源控制器和自定义路由。除非可以避免,否则坚持使用其中一种方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 2016-04-26
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多