hasManyThrough Laravel не работает

Учитывая следующие модели и используя Laravel 5.2:

запись

  • Я бы

атрибут

  • entry_id
  • asset_uuid

Актив

  • UUID

  1. Запись имеет много атрибутов
  2. Атрибут имеет один актив
  3. Актив имеет много атрибутов

Я хотел бы сделать отношения между входом и активом но я не могу сделать это с 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()

Заранее спасибо.

-1

Решение

Вы можете использовать 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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]