我正在运行一个发送电子邮件的cron,我将向用户发送应用程序链接。 在我的配置文件中,我已将应用程序URL设置为“url()”,这为我提供了在浏览器中到应用程序公共路径的正确路径。但是当我在cron中运行时,同样的事情就是只给'localhost'。
如何在命令行中获取应用程序URL?
答案 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()函数在任何其他情况下。