Свяжите morphToMany с настраиваемой моделью поворота в Laravel
Структура таблицы следующая
users <-> org_members <-> organisations -> contacts -> orders
В приведенной выше настройке некоторые org_members
иметь доступ к назначенным contacts
и все orders
принадлежащие им, а некоторые org_members
иметь доступ к назначенным orders
только.
Для этого я создал дополнительную таблицу - assignables (org_member_id, assignable_id, assignable_type)
- и установите модели, как показано ниже.
Модель пользователя
public function organisations()
{
return $this->belongsToMany('App\Organisation', 'org_members')
->using('App\Member')
->as('member')
->withPivot('id'...);
}
Сводная модель члена
public function assignedContacts()
{
return $this->morphedByMany('App\Contact', 'assignable', null, 'org_member_id');
}
Теперь я могу получить список контактов вот так
User::find(1)->organisations->where('id', $org_id)->first()->member->assignedContacts;
Проблема
Я не могу найти способ получить назначенных членов контактов из модели контактов.
Модель контактов
public function assignedMembers()
{
return $this->morphToMany('App\Member', 'assignable', null, 'org_member_id');
}
Я получаю следующую ошибку: Базовая таблица или представление не найдены: 1146 Таблица "database.member" не существует.
Есть ли какой-либо практический способ связать отношения morphToMany с пользовательской моделью поворота, как указано выше?