如果beforesave返回false,则显示一条消息 - yii2

时间:2015-09-29 13:49:36

标签: yii2

在我的邀请模型中,我有一个之前的保存功能,如果同一天的同一小时已有2个邀请,则会检查并返回false。虚假,让用户留在“创造”中。 如果之前保存返回false,我如何在创建中插入消息?

这是我的功能:

 public function beforeSave($insert)
{
    $return = parent::beforeSave($insert);
      $numOfInvitations = (new yii\db\Query())
     ->from('invitation')
        ->where(['day' =>$this->day])
        ->andWhere(['hour' =>$this->hour])
        ->count();
    if ($numOfInvitations==2){

        return false;           
    }

    return $return;
}    

1 个答案:

答案 0 :(得分:4)

e.g。 $this->addError('id', 'there are already 2 invitations');

但是我会在你的rules添加验证功能并在验证时检查它。

['id', 'checkInvitations'] 

中的代码
function public function checkPanCardUsers($attribute, $params)
{
   if ($this->day && $this->hour) {
       $numOfInvitations = (new yii\db\Query())
        ->from('invitation')
        ->where(['day' =>$this->day])
        ->andWhere(['hour' =>$this->hour])
        ->count();
        if ($numOfInvitations==2){
           $this->addError($attribute, 'there are already 2 invitations');
        }
    }
}