【问题标题】:Laravel 4 url() method is not working in command lineLaravel 4 url​​() 方法在命令行中不起作用
【发布时间】:2014-11-01 10:59:25
【问题描述】:

我正在运行一个 cron,它发送一封电子邮件,我在其中向用户发送应用程序链接。 在我的配置文件中,我将应用程序 url 设置为“url()”,这为我提供了到浏览器中应用程序公共路径的正确路径。但是当我在 cron 中运行它时,同样的事情是只给出 'localhost'。

如何在命令行中获取应用程序 url?

【问题讨论】:

    标签: php laravel-4 cron command-line-interface


    【解决方案1】:

    除了在一种情况下使用 url() 而在另一种情况下使用配置值之外,您还可以预先只使用一次 URL::forceRootUrl(),然后在任何地方使用 url()

    例如,如果您在命令代码的开头执行一次:

    URL::forceRootUrl("http://example.whatever");
    

    ...那么这就是url() 从那时起将返回的内容。此外,action() 等其他助手将使用它作为基础并返回您所期望的。

    【讨论】:

      【解决方案2】:

      如果您通过设置 laravel artisan 命令通过 cron 运行 php 脚本,则与通过浏览器运行脚本时不同,您不会获得任何 SEVER 执行环境信息或 HTTP 代理信息。 您的函数 'url()' 在内部从 SERVER 变量的 [HTTP_HOST]/[SERVER_NAME] 获取有关公共 url 的信息,如果您从 cron 运行 php 脚本(通过 artisan 命令),这些信息通常不存在。

      在这种情况下,如果您确实需要应用程序的公共 url,您可以在包含的配置文件中设置它,并在这种情况下使用您的 url() 函数在任何其他情况下。

      【讨论】:

        猜你喜欢
        • 2014-04-10
        • 2019-08-18
        • 2014-03-26
        • 2021-05-10
        • 2021-02-24
        • 2019-02-22
        • 2016-04-01
        • 2017-06-21
        • 2013-09-25
        相关资源
        最近更新 更多