在我的Device.php模型中,我有两个天线和固定阅读器的关系。
/**
* Get All Antennas directly associated with Device
*
* @return IlluminateDatabaseEloquentRelationsMorphMany
*/
public function antennas() : MorphMany
{
return $this->morphMany(Antenna::class, 'attachable');
}
/**
* Get All Fixed Readers of Device
*
* @return IlluminateDatabaseEloquentRelationsHasMany
*/
public function fixedReaders() : HasMany
{
return $this->hasMany(FixedReader::class);
}
在我的FixedReader.php模型中,我有一个与天线的关系。
/**
* Get All Antennas of readers
*
* @return IlluminateDatabaseEloquentRelationsMorphMany
*/
public function antennas() : MorphMany
{
return $this->morphMany(Antenna::class, 'attachable');
}
在我的天线。php模型中,我可以得到设备或固定阅读器。
/**
* Get the parent attachable model (Device or Fixed Reader).
*/
public function attachable(): MorphTo
{
return $this->morphTo();
}
我想在查询设备模型时急于加载关系:
Device::select('devices.*')
->with([
'fixedReaders' => [
'antennas'
],
'antennas',
])
->get();
我试了以上,但没有工作。
使用.(点)想要更深入的关系,试试:
Device::select('devices.*')
->with(['fixedReaders.antennas', 'antennas'])
->get();