【问题标题】:Issue In Bootstrap Modal引导模式中的问题
【发布时间】:2015-12-10 05:30:00
【问题描述】:

我正在使用引导模式进行登录。这是我的控制器代码

public function actionSignin()
        {
            $this->layout= "main";
            $model = new LoginForm();

            if ( isset( $_POST[ 'LoginForm' ] ) )
            {

                if ( $model->load( Yii::$app->request->post() ) && $model->login() )
                {
                    $session = Yii::$app->session;
                    $session['username'] = $model->user->first_name;
                    $session['userid'] = $model->user->id;

                    return $this->redirect( [ '/site/home' ] );
                }
                else
                { 

                    Yii::$app->getSession()->setFlash('error', 'Incorrect Email or Password or both');
                    return  $this->renderAjax( 'signin', [ 'model' => $model ] );
                }
            } 

            else
            {
                return  $this->renderAjax( 'signin', [ 'model' => $model ] );
            }
        }

当用户点击以下链接时,会弹出登录表单

echo Html::a( Yii::t( 'app', ' {modelClass}', ['modelClass' => 'SignIn',
                        ] ), [ 'account/signin' ], [ 'class' => 'btn btn-link  fa fa-sign-in btn-primary sign']
                        );

当用户输入正确的用户名和密码时,用户将被重定向到代码中给出的站点/主页。但是当用户输入错误的用户名或密码时,模式应该再次弹出,但不是。相反,我得到一个带有白色背景(无布局)的页面,其中包含输入用户名和密码的字段。我无法在模式弹出窗口中看到它,为什么会这样?

【问题讨论】:

  • 转到这个link。这可能会有所帮助!

标签: yii2 bootstrap-modal yii2-advanced-app


【解决方案1】:

添加您的_form 喜欢:

<?php $form = ActiveForm::begin(['enableAjaxValidation' => true,]); ?>

将此代码添加到您的controller 文件中:

public function actionSignin()
{
        $this->layout= "main";
        $model = new LoginForm();

        if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) 
        {
           Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
           return ActiveForm::validate($model);
        }

        if ( $model->load( Yii::$app->request->post() ) && $model->login() )
        {
             $session = Yii::$app->session;
             $session['username'] = $model->user->first_name;
             $session['userid'] = $model->user->id;

             return $this->redirect( [ '/site/home' ] );
        }
        else
        { 
             Yii::$app->getSession()->setFlash('error', 'Incorrect Email or Password or both');
             return  $this->renderAjax( 'signin', [ 'model' => $model ] );
        }
        return  $this->renderAjax( 'signin', [ 'model' => $model ] );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2018-01-12
    • 2012-09-26
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多