У меня простая работа:
class SampleJob extends Job implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, DispatchesJobs;
private $customer;
public function __construct(Customer $customer)
{
parent::__construct();
$this->customer = $customer;
}
public function handle()
{
doSomeStuff($customer->currency());
}
}
В модели Customer
у меня есть отношение для country
:
clas Customer extends Model
{
public function country()
{
return $this->belongsTo(Country::class);
}
public function currency()
{
return $this->country->currency();
}
}
Когда я отправляю работу через dispatch(new SampleJob($customer))
Я получаю сообщение об ошибке в журналах:
Call to a member function currency() on null {"code":0,"file":"Customer.php","line":386}
Хитрость здесь в том, что если я уберу черту SerializesModels
с работы, она будет работать нормально. Но я действительно не хочу этого делать, потому что это может привести к непредвиденным ошибкам (у нас много таких задач, с гораздо большим количеством свойств).
Итак, я хочу просто выяснить, почему происходит эта ошибка.
Я использую database
драйвер для работы.
Ларавел 5.8.16. Также с Laravel 5.6 все работало нормально.