В общем вот такая загвоздка( Пишу регистрацию пользователей. и сразу же наткнулся на вот такую лажу. При отправке данных с формы они не проходят валидацию.
Вот модель:
Код: Выделить всё
<?
namespace app\models;
use yii\base\Model;
/**
*
*/
class SignupForm extends Model
{
public $username;
public $password;
public function rules()
{
return [
[['username', 'password'], 'required'],
];
}
public function attributeLabels()
{
return [
'username' => 'login',
'password' => 'Password',
];
}
}
Код: Выделить всё
public function actionSignup()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new SignupForm();
if($model->load(Yii::$app->request->post()) && $modal->validate()){
$user = new User;
$user->username = $model->username;
$user->password = \Yii::$app->security->generatePasswordHash($model->password);
if($user->save()){
Yii::$app->user->login($user);
return $this->goHome();
}
}
return $this->render('signup', compact('model'));
}
Код: Выделить всё
<?
use yii\helpers\Html;
use yii\bootstrap4\ActiveForm;
?>
<div class="row">
<div class="col-gl-4 mx-auto">
<? $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'username'); ?>
<?= $form->field($model, 'password')->passwordInput(); ?>
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Singup', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>
</div>
<? ActiveForm::end(); ?>
</div>
</div>
Call to a member function validate() on null и указывает на строку, где fi с валидацией.
Подскажите пожалуйста, что не так?