alex4answ
@alex4answ

Как правильно построить связь между 3 таблицами?

Добрый день, есть 3 таблицы:
elements - Список элементов
permission - список разрешений для элементов
per_tariffs - список разрешений для тарифов пользователей


Вот так выглядит схема:
5c9081fa8044f536345136.png

В чем собственно проблема:
Я пытаюсь получить список элементов вместе с разрешениями.
Вначале у меня есть только elements, и я пытаюсьс делать так:
получаю permission по elements.type, затем получаю per_tariffs по permission.id

Это все работает если вручную составлять sql запрос, но у меня active record, и хочется разобраться как с ним вытворять подобные вещи, сейчас я пытаюсь сделать так:
В моделе Elements:
public function getPermission(){
        return $this->hasMany(Permissions::className(), ['type' => 'type'])
                ->viaTable('per_tariffs', ['per_id' => 'id']);
    }

В контролере :
$model = Elements::find()
                ->with('permission')
                ->asArray()
                ->all();
.. debug($model);

Но permission пустое в модели выходит.

Подскажите пожалуйста, как это правильно сделать? чувствую вот просто как баран уперся и не туда смотрю, как-то это должно просто решаться(
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы