流明基础 url 在 Controller 和 Job 中不同
Lumen base url is different in a Controller and a Job
我有一个控制器,其中 URL::to('/') returns 我网站的基础 url。但是,当我在作业中使用 URL::to('/') 时,它 returns 只有一个冒号作为字符串 (":")。
class MyJob extends Job {
public function handle() {
Log::info(URL::to('/'));
}
}
这个returns"http://:"
class MyController extends Controller { {
public function myMethod() {
Log::info(URL::to('/'));
}
}
这个returns"http://my_domain.com"
我无法理解这一点。我应该只在 .env 中保存基础 url 并使用它吗?
我正在使用 beanstalkd 作为队列。
自然地 UrlGenerator
class 从 Request
实例 https://github.com/laravel/lumen-framework/blob/5.0/src/Routing/UrlGenerator.php#L289 中获取基础 url,而当您 运行 时该实例不存在您在 CLI 环境中的工作人员。
因此,要么将基础 url 存储在您的 .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);
}
}
我有一个控制器,其中 URL::to('/') returns 我网站的基础 url。但是,当我在作业中使用 URL::to('/') 时,它 returns 只有一个冒号作为字符串 (":")。
class MyJob extends Job {
public function handle() {
Log::info(URL::to('/'));
}
}
这个returns"http://:"
class MyController extends Controller { {
public function myMethod() {
Log::info(URL::to('/'));
}
}
这个returns"http://my_domain.com"
我无法理解这一点。我应该只在 .env 中保存基础 url 并使用它吗?
我正在使用 beanstalkd 作为队列。
自然地 UrlGenerator
class 从 Request
实例 https://github.com/laravel/lumen-framework/blob/5.0/src/Routing/UrlGenerator.php#L289 中获取基础 url,而当您 运行 时该实例不存在您在 CLI 环境中的工作人员。
因此,要么将基础 url 存储在您的 .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);
}
}