Учитывая следующие модели и используя Laravel 5.2:
Я хотел бы сделать отношения между входом и активом но я не могу сделать это с HasManyThrough поскольку «атрибут имеет один актив». Вот текущие отношения:
Модель входа
public function attributes()
{
return $this->hasMany(EntryAttribute::class);
}
Модель атрибута
public function asset()
{
return $this->hasOne(Asset::class, 'uuid', 'asset_uuid');
}
Модель актива
public function attribute()
{
return $this->hasMany(EntryAttribute::class, 'asset_uuid', 'uuid');
}
Любая идея о том, как я могу сделать отношения активов, как:
$entry->assets()
Заранее спасибо.
Вы можете использовать hasManyThrough
в вашем Entry
класс как следующий:
public function assets(){
return $this->hasManyThrough(
Asset::CLASS,
EntryAttribute::CLASS,
'entry_id', // Foreign key of your attribute table
'asset_uuid', // Foreign key of your asset table
'id', // Local id in your entry table
'uuid', // Local id in your entry attribute table
);
}
Для дополнительной информации: https://laravel.com/docs/5.5/eloquent-relationships
Других решений пока нет …