设置未知属性

时间:2015-10-30 17:41:57

标签: php yii2

型号:

<?php

namespace app\models;

use Yii;

class User extends \yii\base\Model
{
    public $login;
    public $password;
    public $repassword;
    public function rules()
    {
        return [
            [['login', 'password', 'repassword'], 'required'],
            [['login'], 'match', 'pattern' => '/^[A-Za-z0-9_]+$/u', 'message' => 'Логин может содержать буквы цифры и "_" '],
            [['login'], 'unique', 'Логин уже используется'],
            [['login'], 'filter', 'filter' => 'trim'],
            [['password'], 'string', 'min' => 4, 'message' => 'Слишком короткий пароль'],
            [['repassword'], 'compare', 'compareAttribute' => 'newPassword', 'message' => 'Пароли не совпадают']
        ];
    }
}
?>

控制器

public function actionReg()
{
    $model = new User;
    return $this->render('reg', [
        'model' => $model
    ]);
}

查看

<?

use yii\widgets\ActiveForm;
use yii\helpers\Html;

?>
<? $form = ActiveForm::begin(['id' => 'login-form']); ?>

<?
    echo $form->field($model, 'login');
    echo $form->field($model, 'password');
    echo $form->field($model, 'repassword');
?>


<? ActiveForm::end(); ?>

收到错误:

  

PHP用户错误 - yii \ base \ ErrorException

     

异常(未知属性)'yii \ base \ UnknownPropertyException'with   消息'设置未知属性:yii \ validators \ UniqueValidator :: 0'

在第

echo $form->field($model, 'login');

1 个答案:

答案 0 :(得分:3)

似乎是这个

   [['login'], 'unique', 'Логин уже используется'],

不是有效的验证器。

尝试删除它或以此格式定义新的

 ['a1', 'unique', 'targetAttribute' => 'a2']

可能此'Логин уже используется'不是有效属性