2014-04-25 104 views
2

我把分类账作为一个模型,它有一个字段名称account_type.It拥有值贷方和借方。如果我给信贷,那么它应该去付款页面。如果我给借记卡,那么它应该去收据页面。为此,我需要在我的actionPayment和actionReceipt中给出一个条件。yii中的条件条件

这是我的actionPayment代码。

public function actionPayment() 
    { 
     $criteria = new CDbCriteria(); 
     $criteria->params=(array(':account_type'=>'credit')); 
     $dataProvider=new CActiveDataProvider('Payments'); 
    $this->render('index',array(
     'dataProvider'=>$dataProvider, 
    )); 
    } 

我想显示付款页面中的所有行的信用。我是一个初学者。任何人都可以请帮我解决我的问题? 这是我的视图文件。

<tr> 
<td> 
<?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?> 
<br /> 
</td><td> 
<?php echo CHtml::encode($data->account_type); ?> 
<br /> 
</td><td> 
<?php echo CHtml::encode($data->refer_no); ?> 
    <br /></td> 
<td> 
<?php echo CHtml::encode($data->bill_no); ?> 
<br /> 
</td> 
<?php echo CHtml::encode($data->comments); ?> 
    <br /></td> 
<td> 
<?php echo CHtml::encode($data->balance); ?> 
    <br /></td> 
<td> 
<?php echo CHtml::encode($data->transaction_date); ?> 
<br /> 
</td> 

这是我的表单页面 errorSummary($模型); ?>

<div class="form-group"> 
    <?php echo $form->labelEx($model,'id',array("class" => "col-sm-2 control-label")); ?> 
     <div class="col-sm-10"> 
    <?php echo $form->textField($model,'id', array('class' => 'form-control', 'size' => 45, 'maxlength' => 45)); ?></div> 
    <?php echo $form->error($model,'id'); ?> 
</div> 

<div class="form-group"> 
    <?php echo $form->labelEx($model,'account_type',array("class" => "col-sm-2 control-label")); ?> 
     <div class="col-sm-10"> 
    <?php echo $form->textField($model,'account_type', array('class' => 'form-control', 'size' => 45, 'maxlength' => 45)); ?></div> 
    <?php echo $form->error($model,'account_type'); ?> 
</div> 

<div class="form-group"> 
    <?php echo $form->labelEx($model,'refer_no',array("class" => "col-sm-2 control-label")); ?> 
     <div class="col-sm-10"> 
    <?php echo $form->textField($model,'refer_no', array('class' => 'form-control', 'size' => 45, 'maxlength' => 45)); ?></div> 
    <?php echo $form->error($model,'refer_no'); ?> 
</div> 

<div class="form-group"> 
    <?php echo $form->labelEx($model,'bill_no',array("class" => "col-sm-2 control-label")); ?> 
     <div class="col-sm-10"> 
    <?php echo $form->textField($model,'bill_no', array('class' => 'form-control', 'size' => 45, 'maxlength' => 45)); ?> 
     </div> 
    <?php echo $form->error($model,'bill_no'); ?> 
</div> 

<div class="form-group"> 
    <?php echo $form->labelEx($model,'comments',array("class" => "col-sm-2 control-label")); ?> 
     <div class="col-sm-10"> 
    <?php echo $form->textField($model,'comments', array('class' => 'form-control', 'size' => 45, 'maxlength' => 45)); ?> 
     </div> 
    <?php echo $form->error($model,'comments'); ?> 
</div> 

<div class="form-group"> 
    <?php echo $form->labelEx($model,'balance',array("class" => "col-sm-2 control-label")); ?> 
     <div class="col-sm-10"> 
    <?php echo $form->textField($model,'balance', array('class' => 'form-control', 'size' => 45, 'maxlength' => 45)); ?> 
     </div> 
    <?php echo $form->error($model,'balance'); ?> 
</div> 

<div class="form-group"> 
    <?php echo $form->labelEx($model,'transaction_date',array("class" => "col-sm-2 control-label")); ?> 
     <div class="col-sm-10"> 
    <?php echo $form->textField($model,'transaction_date', array('class' => 'form-control', 'size' => 45, 'maxlength' => 45)); ?> 
     </div> 
    <?php echo $form->error($model,'transaction_date'); ?> 
</div> 

<div class="form-group"> 
     <div class="col-sm-offset-2 col-sm-10"> 
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save',array("class"=>"btn btn-success")); ?> 
     </div>" 
</div> 
+0

谷歌是你的朋友,http://bit.ly/1lanihE – Guns

回答

4

试试这个:

public function actionPayment() 
{ 
    $criteria = new CDbCriteria(); 
    $criteria->condition = "account_type = :account_type"; 
    $criteria->params=(array(':account_type'=>'credit')); 
    $dataProvider=new CActiveDataProvider('Payments',array(
     'criteria'=>$criteria, 
    )); 
    $this->render('index',array(
     'dataProvider'=>$dataProvider, 
    )); 
} 
+0

欢迎来到Yii :)。 'condition'是要应用的sql条件。 'params'是要传递的sql参数。你需要告诉CActiveDataProvider当检索记录时应该应用'$ criteria'。 – nazim

+1

如果我想显示所有值的信贷我应该去这个代码? $基准 - > PARAMS = $这 - >呈现( '索引',阵列( \t \t \t '的dataProvider'=> $ dataProvider中,阵列( ':ACCOUNT_TYPE'=> '信用') \t \t)); – Sridhar

+1

谢谢。完善 – Sridhar

2

您也可以使用此

$criteria->compare('account_type', 'credit'); 

反对

$criteria->condition = "account_type = :account_type"; 
$criteria->params=(array(':account_type'=>'credit')); 

完整的示例:

criteria = new CDbCriteria(); 
$criteria->compare('account_type', 'credit'); 
$dataProvider=new CActiveDataProvider('Payments',array(
    'criteria'=>$criteria, 
)); 
+1

如果我呈现索引页,那么它会显示信用卡和借记卡的记录。但是当我渲染索引页时,我只需要显示功劳。 – Sridhar

+0

显示您的查看文件 – Alex

+1

谢谢。我犯了一个小错误。两个代码都工作得很完美。 – Sridhar