表单规则不起作用

时间:2015-11-10 11:22:33

标签: php validation yii2

我的控制器:

public function rules()
{
    return [
        [['text'], 'required', 'message' => 'Fill in this field'],
        ['text', 'string', 'min' => 6, 'message' => 'Too short message'],
        ['text', 'validateUser']
    ];
}
public function validateUser($attribute)
{
    if (Yii::$app->user->isGuest)
        $this->addError($attribute, 'You must be logged in');
}

我有两个问题:

1)而不是消息“消息太短”'我看到文本字段应至少包含6个字符。'

2)validateUser未添加警告'您必须登录'

2 个答案:

答案 0 :(得分:0)

的Ad1。它应该是['text', 'string', 'min' => 6, 'tooShort' => 'Too short message'],

Ad2的。你确定这个条件是真的吗?您可以在这里使用die()或类似的东西吗?或者甚至没有激活此验证规则?

答案 1 :(得分:0)

适用于validateUser

public function rules()
{
    return [
        [['text'], 'required', 'message' => 'Fill in this field'],
        ['text', 'string', 'min' => 6, 'message' => 'Too short message'],
        ['text', 'required', 'when' => function($model){
              return (Yii::$app->user->isGuest);
            },'message'=>'You must be logged in'],
    ];
}