Yii2 validate()在带有所需FK的link()之前

时间:2018-09-06 16:42:03

标签: validation yii2 foreign-keys

这是一个问题:例如,我们有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个选择:

  1. 从所需规则中删除“ book_id”
  2. 使用场景

谢谢您的意见!

0 个答案:

没有答案