Свяжите 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 с пользовательской моделью поворота, как указано выше?

0 ответов

Другие вопросы по тегам