【问题标题】:How do I change the domain when using URL::action()使用 URL::action() 时如何更改域
【发布时间】:2013-06-07 00:44:43
【问题描述】:

我正在尝试复制 Laravel 3 中可用的内容。我希望能够为路由指定备用域名。例如,我有一条使用此代码生成以下内容的路线:

URL::action('DashboardController@something')
// Produces: http://somedomain.com/dashboard/something

我希望能够指定不同的域。这曾经在 config/application.php 文件中作为“url”。这在 L4 中不再有效。

有没有办法在构建 URL 时指定要使用的基本 url?

【问题讨论】:

  • 这条路由应该永久具有相同的域还是仅在一种特定情况下具有相同的域?
  • 应用程序生成的任何 URL 都应该是永久的。

标签: laravel laravel-4


【解决方案1】:

Laravel 4 使用在 HTTP 请求头字段 Host 中指定的域,例如Host: http://foo.dev.

如果您想要不同的域名,请尝试以下操作:

Route::group(array('domain' => 'bar.dev'), function()
{
    Route::controller('home', 'HomeController');
});

现在URL::action('HomeController@getWelcome');返回https://bar.dev/home/welcome 而不是https://foo.dev/home/welcome

【讨论】:

    【解决方案2】:

    “app”目录的位置定义在:\bootstrap\paths.php 配置文件的默认位置现在是:\app\config\app.php

    根据您的设置,它应该在 app.php 中的第 29 行左右。

    寻找:

    'url' => 'http://somedomain.com',
    

    并将其更改为适合您网站的任何内容。

    【讨论】:

    • 这在 Laravel 4 中不起作用。此配置值仅在通过 artisan 以控制台模式运行时使用。
    • 起初我不知道什么时候使用这个url设置。但现在我愿意。如果您创建了一些运行任何脚本的 Artisan 控制台工具,则需要执行此操作,从而诸如 url() 之类的 url 生成函数会生成指向网站的链接,原因是因为无法从 CLI 确定顶级域运行脚本的服务器,即$_SERVER['HTTP_HOST'] 是空的。所以这对我有用,因为我创建了一个向人们发送电子邮件的 Artisan 命令,并且在这些电子邮件中嵌入了指向由 url() 函数创建的网站的链接。希望能澄清事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多