Yii bootstrap自定义登录页面

时间:2013-03-14 18:53:59

标签: forms twitter-bootstrap login yii themes

我为我的yii应用程序安装了一个bootstrap主题,以便在其登录页面上显示。 如何将这些表单中输入的信息传递给login.php

中的变量

另外,如何在主题中点击“登录”按钮来调用login.php中的“登录”按钮?

这些是bootstrap主题中的表单:

          <div class="clearfix">
            <input type="text" placeholder="username">
          </div>

          <div class="clearfix">
            <input type="password" placeholder="password">
          </div>

          <button class="btn primary" type="submit">Sign in</button>

这些是yii将在login.php中显示其默认主题的表单:

<div class="row">
    <?php echo $form->labelEx($model,'username'); ?>
    <?php echo $form->textField($model,'username'); ?>
    <?php echo $form->error($model,'username'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'password'); ?>
    <?php echo $form->passwordField($model,'password'); ?>
    <?php echo $form->error($model,'password'); ?>
</div>

<div class="row buttons">
    <?php echo CHtml::submitButton('Login'); ?>
</div>

2 个答案:

答案 0 :(得分:1)

为Yii最佳实践。不要使用login.php文件而是使用controller / action,并在该操作中定义您的登录逻辑,如下所示: 登录查看文件

<?php $form=$this->beginWidget('CActiveForm', array(
        'id'=>'login-form',
        'enableClientValidation'=>true,
        'clientOptions'=>array(
            'validateOnSubmit'=>true,
        ),
        )); ?>
<div class="row">
  <?php echo $form->labelEx($model,'username'); ?>
  <?php echo $form->textField($model,'username'); ?>
  <?php echo $form->error($model,'username'); ?>
</div>

<div class="row">
  <?php echo $form->labelEx($model,'password'); ?>
  <?php echo $form->passwordField($model,'password'); ?>
  <?php echo $form->error($model,'password'); ?>
</div>
  <div class="row buttons">
  <?php echo CHtml::submitButton('Login'); ?>
</div>

这是你的控制器动作:

public function actionLogin()
{
  $model=new LoginForm;
   if(isset($_POST['LoginForm']))
    {
           $model->attributes=$_POST['LoginForm'];
           if($model->validate() && $model->login()){
             //Your Logic//  
            }
      $this->render('login',array('model'=>$model));
 }

答案 1 :(得分:0)

  <?php $form=$this->beginWidget('CActiveForm', array(
                    'action'=>array('login.php')
                )); ?>

通常Yii会在控制器上调用一个动作。你知道Yii的基础知识吗?