Yii:更改登录页面

时间:2014-01-22 15:37:50

标签: php login yii twitter-bootstrap-3 navbar

当我们使用yiic创建yii webapp时,已经创建了一个登录功能。 但是,我想使用导航栏作为登录小部件(以及设计的引导程序),如here所示。那是我遇到问题的时候。当我尝试使用工具栏/小部件登录时,我输入的详细信息显示在浏览器的栏中,然后没有显示。请参阅here

这是我的LoginWidget.php

<?php class LoginWidget extends CWidget {
public function run() {
    $model=new LoginForm;

    $form= $this->beginWidget('CActiveForm', array(
        'id'=>'login-form',
        // 'action'=>
        'enableClientValidation'=>true,
        'clientOptions'=>array(
            'validateOnSubmit'=>true,
            )
        ));

    echo $form->errorSummary($model);
    ?>
    <div class="form-group">
        <?php echo $form->textField($model,'username',array('placeholder'=>'Employee Code','class'=>'form-control')); ?>
        <?php echo $form->error($model,'username'); ?>
    </div>
    <div class="form-group">
        <?php echo $form->passwordField($model,'password',array('placeholder'=>'Password','class'=>'form-control')); ?>
        <?php echo $form->error($model,'password'); ?>
    </div>
    <?php
    echo CHtml::submitButton('Sign in', array('class'=>'btn btn-success'));
    $this->endWidget();
}

}?&gt;

这是我的控制器(只是必要部分)。

    public function actionIndex()
{
    $model=new LoginForm;

    // if it is ajax validation request
    if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }

    // collect user input data
    if(isset($_POST['LoginForm']))
    {
        $model->attributes=$_POST['LoginForm'];
        // validate user input and redirect to the previous page if valid
        if($model->validate() && $model->login())
            $this->redirect('myprofile/index');
    }
    // display the login form
    $this->render('index',array('model'=>$model));

    // renders the view file 'protected/views/site/index.php'
    // using the default layout 'protected/views/layouts/main.php'
    // $this->render('index');
}

当我尝试使用localhost / project / index.php / site / login登录时,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

确保表单使用POST发送数据

$form= $this->beginWidget('CActiveForm', array(
    'id'=>'login-form',
    'method' => 'POST',
    'enableClientValidation'=>true,
    'clientOptions'=>
       array(
        'validateOnSubmit'=>true,
       )
));