【问题标题】:Criteria condition in yiiyii 中的条件条件
【发布时间】:2014-06-10 16:16:09
【问题描述】:

我将账本作为模型,其中包含字段名称 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>

这是我的表单页面 错误摘要($模型); ?>

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

【问题讨论】:

标签: php yii criteria


【解决方案1】:

试试这个:

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

【讨论】:

  • 欢迎来到 Yii :)。 condition 是要应用的 sql 条件。 params是要传递的sql参数。并且你需要告诉你 CActiveDataProvider 在检索记录时应该应用$criteria
  • 如果我想显示所有值得信赖的值,我应该使用这个代码吗? $criteria->params=$this->render('index',array( 'dataProvider'=>$dataProvider,array(':account_type'=>'credit') ));
【解决方案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,
));

【讨论】:

  • 如果我呈现索引页面,那么它会显示贷方和借方的记录。但是当我呈现索引页面时,我只需要显示信用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-17
  • 1970-01-01
相关资源
最近更新 更多