Вот вопрос: например, у нас есть 2 модели: Книги и Метки
Теги Правила
public function rules()
{
return [
[['book_id', 'tag_name'], 'required']
];
}
Книги Правила
public function rules()
{
return [
[['name'], 'required']
];
}
Отношение «один-много-много» между Книгами и Теги
/**
* @return \yii\db\ActiveQuery
*/
public function getTags()
{
return $this->hasMany(Tags::className(), ['book_id' => 'id']);
}
Сохранение данных
if($books->load($post) && $books->save()){
if(Model::loadMultiple($tags, $post) && Model::validateMultiple($tags)){
foreach ($tags as $tag)
$tags->link('books',$books);
}
}
В результате я получил ошибку модели - Attribute "book_id" is required.
Это происходит в Model::validateMultiple($tags)
, потому что FK book_id требуется в Метки модель.
Какое наилучшее решение на этом пути? У меня есть 2 варианта:
- Удалить "book_id" из необходимого правила
- Использование сценариев
Заранее спасибо за ваше мнение!