2014-01-22 122 views
0

当我们使用yiic创建yii webapp时,已经创建了登录功能。 但是,我想使用导航栏作为登录窗口小部件(和引导设计),如here中所示。那是当我遇到我的问题。当我尝试使用工具栏/小部件进行登录时,我输入的详细信息将显示在浏览器的栏中,然后不显示任何内容。见hereYii:更改登录页面

这是我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(); 
} 

}?>

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

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登录时,它可以工作。

+0

你的Dropbox链接不工作。 – Jurik

+0

对不起,它现在正在工作。 – jennygii

回答

1

确保形式将数据发送与POST

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

什么都没有发生。 – jennygii