我有一个控制器,其中URL :: to(' /')返回我网站的基本网址。但是,当我在作业中使用URL :: to(' /')时,它只返回冒号作为字符串(":")。
class MyJob extends Job {
public function handle() {
Log::info(URL::to('/'));
}
}
这会返回"http://:"
class MyController extends Controller { {
public function myMethod() {
Log::info(URL::to('/'));
}
}
这会返回"http://my_domain.com"
我无法理解这一点。我应该只在.env中保存基本网址并使用它吗?
我正在使用beanstalkd作为队列。
答案 0 :(得分:0)
当然,UrlGenerator
类会从Request
实例http://crossroadsphotographicworkshops.com/blog/blog-post-the-first/中获取基本网址,当您在CLI环境中运行作业工作时,该实例不存在。
因此,要么将基本网址存储在.env文件中,要么在发送时将其传递给作业。
$app->get('/job', function() use ($app) {
$app['Illuminate\Contracts\Bus\Dispatcher']->dispatch(new MyJob(url('/')));
});
MyJob.php
class MyJob extends Job
{
private $base_url;
public function __construct($base_url)
{
$this->base_url = $base_url;
}
public function handle()
{
app()['log']->info($this->base_url);
}
}