Ответы пользователя по тегу CRUD
  • Как в Yii2 работать со связанными таблицами при помощи ActiveRecord?

    @urfinjazz Автор вопроса
    Отвечу на свой вопрос, вдруг кому-то пригодится.

    Итак, задача:
    Есть таблица pages и связанная таблица content, в таблице content может быть несколько записей с одним page_id.
    Нужно реализовать список всех pages, при клике на "edit page" мы должны попасть на страницу с контентом этой page.

    Реализация:
    Заходим в gii, создаём модель для pages, если поставить галочку Generate Relations, в моделе создастся функция
    getContents()
        {
            return $this->hasMany(Content::className(), ['page_id' => 'id']);
        }

    Создаём модель для Content.
    Создаём CRUD для Pages.

    В контроллере Pages меняем строчку
    $model = Pages::findOne($id)
    на
    $model = Pages::find()->with('contents')->where(['id'=>$id])->one()

    Всё. Можем работать с данными из таблицы content.

    Первый вопрос - можно ли пихать такое в контроллер - остаётся открытым.
    Вернее, я уверен, что не стоит.
    Ответ написан
    7 комментариев