1

ActiveForm ウィジェットなしで、Yii2 Basic でカスタム ログイン フォームを作成しようとしています。ログインに使用するフォームを作成しましたが、ログインしようとすると、何もせずにページを更新するだけでログインできないため、何かを見落としているか、本来あるべきように動作しない可能性があります。ユーザー名の代わりに電子メール アドレスを使用します。ActiveForm ではすべて機能しますが、カスタムにしようとすると問題が発生します。

これは、カスタムにしたいログインフォームです:

 <div class="login-message"> 
    <h1><?= Html::encode($this->title) ?></h1>
</div>

<form method="post">
    <div>
        <span class="">  Email  </span>
        <input value="<?php $model->email ?>" placeholder="Write your email address" type="text">
    </div>
    <div> 
        <span class=""> Password </span>
        <input value="<?php $model->password ?>" placeholder="Write your password" type="password">
    </div>
    <div class="form-group">
        <div>
            <div class="register">
                <?= Html::a(Yii::t("app", "Register"), ["/site/register"]) ?>

            </div>
            <br>
            <div class="forgot-pas">
                <?= Html::a(Yii::t("app", "Forgotten  password") . "?", ["/site/forgot"]) ?>
                <br>
            </div>
            <br>
            <div class="login-button">
                <?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
            </div>
        </div>
    </div>
    <input type="hidden" value="" name="_csrf" >
</form>

ログイン用の SiteController での私のアクション:

   public function actionLogin() {
    if (!Yii::$app->user->isGuest) {
        return $this->goHome();
    }
    $model = new LoginForm();
    if ($model->load(Yii::$app->request->post()) && $model->login()) {
        return $this->goBack();
    }
    return $this->render('login', [
                'model' => $model,
    ]);
}
4

1 に答える 1