2014-04-25 118 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