如何热切加载多态关系-在LARAVEL?



在我的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();

相关内容

  • 没有找到相关文章

最新更新