型号:
<?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"具有消息"正在设置未知属性:yii''validators''UniqueValidator::0"
在线
echo $form->field($model, 'login');
看起来这个
[['login'], 'unique', 'Логин уже используется'],
不是有效的验证程序。
尝试删除它或以这种格式定义一个新的
['a1', 'unique', 'targetAttribute' => 'a2']
可能这个'Логин уже используется'
不是一个有效的属性