Утрирую для удобства.
Вот допустим у меня есть модель
Users.php, в ней нет ничего интересного, просто модель, наследует AR, соответствует простой таблице с пользователями:
id,
userName,
userPassword.
Есть вторая модель -
Signup.php - соответственно используется для регистрации нового пользователя. В ней есть метод:
public function rules()
{
return [
[['userName','userPassword'],'required'],
['userName','unique','targetClass'=>'app\models\Users'],
];
}
И метод для непосредственного внесения проверенных данных в БД через модель Users:
public function signup()
{
$user = new Users;
$user->userName = $this->userName;
$user->userPassword = $this->userPassword;
return $user->save();
}
В контроллере такого рода код:
public function actionSignup()
{
$model = new Signup();
if( \Yii::$app->request->post('Signup') )
{
$model->attributes = \Yii::$app->request->post('Signup');
if($model->validate() && $model->signup())
{
return $this->goHome();
}
}
return $this->render('signup',['model'=>$model]);
}
В представлении элементарная форма.
Вопрос: Каким образом происходит проверка уникальности? В официальной документации тупо перед фактом ставят - проверяет и всё.