繁体   English   中英

yii中的条件条件

[英]Criteria condition in yii

我将分类帐作为模型,其字段名称为account_type。它包含贷方和借方的价值。 如果我给功劳,那么它应该转到付款页面。 如果我提供借方,则应转到收据页面。 为此,我需要在actionPayment和actionReceipt中给出一个条件。

这是我的actionPayment代码。

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

我想显示付款页面中所有已记入贷方的行。 我是yii的初学者。 谁能帮我解决我的问题? 这是我的视图文件。

 <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($ model); ?>

<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>

尝试这个:

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,
    )); 
}

你也可以用这个

$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,
));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM