Laravel 4 url​​()方法在命令行中不起作用

时间:2014-09-08 09:00:25

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

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

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

2 个答案:

答案 0 :(得分:1)

不是在一种情况下使用url()而在另一种情况下使用配置值,您也可以预先使用URL::forceRootUrl()一次,然后在任何地方使用url()

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

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

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

答案 1 :(得分:0)

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

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