Отвечу на свой вопрос, вдруг кому-то пригодится.
Итак, задача:
Есть таблица 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.
Первый вопрос - можно ли пихать такое в контроллер - остаётся открытым.
Вернее, я уверен, что не стоит.