Модель: Setting
<?php
namespace app\modules\panel\models;
use app\models\User;
use Yii;
use yii\base\Model;
/**
* Login the model behind the login form.
*/
class Setting extends Model
{
public $login;
public $name;
public $vk;
public $password;
public $passwordTwo;
public function rules()
{
return [
[['login', 'name', 'vk'], 'string'],
['password', 'validatePassword'],
];
}
public function validatePassword($attribute, $params)
{
$this->addError($attribute, 'сразу ошибка без проверок');
}
}
Экшен в контроллере:
public function actionSetting()
{
if (Yii::$app->request->isPost) {
$model = new Setting();
$model->load(Yii::$app->request->post());
$model->updateUser();
}
$dbUser = User::findOne(Yii::$app->user->identity->id);
$user = new Setting();
$user->login = $dbUser->login;
$user->name = $dbUser->name;
$user->vk = $dbUser->vk;
return $this->render('setting', compact('user'));
}
Просто ради проверки поставил встроенный валидатор:
['passwordTwo', 'compare', 'compareAttribute' => 'password']
Он работает. А кастомный не работает... Он вообще ничего не выдает. Не зеленую ни красную обводку: