Laravel 5中排队命令中的查询构建器

时间:2015-08-31 17:51:58

标签: laravel-5 queue query-builder

我正在使用Laravel 5.0并且我使用Artisan CLI创建了一个排队命令:

php artisan make:command SendEmail --queued

我需要在此命令中使用DB :: table()查询构建器方法,但我无法使其正常工作。

这是我的代码的摘录:

<?php namespace App\Commands;

use App\Commands\Command;
use DB;

use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldBeQueued;

class SendEmail extends Command implements SelfHandling, ShouldBeQueued {

use InteractsWithQueue, SerializesModels;

protected $message;

public function __construct($message)
{
    $this->message = $message;
}

public function handle()
{
    $data = DB::table('structures')->where('id', '=', '1')->first();
    // $data is always empty even if database connection works outside the command!!! <-------------------
    // no error exception is thrown
}

}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我发现了错误。我必须重新启动管理程序队列才能正确地重新读取代码:

supervisorctl
supervisor> restart myQueue