Rumah > Soal Jawab > teks badan
Saya baru-baru ini mula menggunakan Model::preventLazyLoading()
Tetapi walaupun hubungan itu tidak memuat tetapi kadang-kadang ia mungkin, ia sebenarnya menimbulkan ralat
Suka sumber 'discount' => $this->whenLoaded('meta', $this->meta->discount ?? 0),
versi laravel: 9.17.0
P粉9208354232024-01-06 11:06:13
Biar PHP
在此处解析您的语法。无论如何,它都必须加载 $this->meta
,因为当 PHP
解析您的代码时,它优先于 whenLoaded()
kaedah.
$this->whenLoaded('meta', $this->meta->discount ?? 0)
Sebab itu whenLoaded()
可以采用 closure()
来避免加载关系,除非它们实际上已加载。此方法将在满足 whenLoaded()
penutupan dinilai dahulu selepas syarat.
$this->whenLoaded('meta', function () { return $this->meta->discount ?? 0; });