Есть таблицы новостей, проектов и промежуточная таблица связи новостей с проектом и новостей. Не совсем понятно как работает этот link(), хотелось бы примера конкретно в моём случае. Сейчас, таблицы:
news
id | title
projects
id | title
project_news
project_id | news_id
Создаю запись так:$model = new News(['scenario' => News::SCENARIO_CREATE]);
$project = new ProjectNews(); // Модель таблица project_news
$projectsList = Project::find()->all(); // Для вывода списка проектов
....
if($project->load(\Yii::$app->request->post())) {
$project->news_id = $model->id;
$project->save();
}
// Всё ок, запись создаются, в проекте новости выводятся и т.д
А вот как быть, если необходимо изменить проект к которому привязана новость?
$model = News::findOne(['id' => $id]);
$model->scenario = News::SCENARIO_UPDATE;
$project = ProjectNews::findOne(['news_id' => $id]); // Поиск записи в БД
$projectsList = Project::find()->all(); // Для вывода списка проектов
// Если
$projectId = \Yii::$app->request->post('ProjectNews');
$project->project_id = $projectId['project_id'];
$project->update(); // Ругается на отсутсвие PK
Как обновить запись в промежуточной таблице?