2014-01-22 156 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