Как присоединиться к различным таблицам по значению поля с помощью построителя запросов Laravel?

65
8

У меня есть таблица, содержащая поля ниже. Я просто хочу присоединиться к таблице по значению поля типа, например, если поле типа содержит значение опыта, тогда соединение должно быть связано с таблицей опыта по ссылочному полю assoc_id, а также для образования тоже.

 - id
- title
- association_id
- type (experience,education)

Любая помощь будет оценена.

спросил(а) 2021-01-19T12:07:23+03:00 9 месяцев назад
1
Решение
112

Вы можете использовать полиморфные отношения

Основная модель:

class Association extends Model {
public function associable()
{
return $this->morphTo();
}
}

Модель Exprience:

class Exprience extends Model {
public function associates()
{
return $this->morphMany(Association::class, 'associable');
}
}

Модель образования:

class Education extends Model {
public function associates()
{
return $this->morphMany(Association::class, 'associable');
}
}

Также вы должны добавить два дополнительных поля в таблицу основных моделей:

associable_id - integer
associable_type - string

Дополнительная информация: https://laravel.com/docs/5.4/eloquent-relationships#polymorphic-relations

ответил(а) 2021-01-19T12:07:23+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема