【问题标题】:Yii CGridView and default values in CDbCriteriaYii CGridView 和 CDbCriteria 中的默认值
【发布时间】:2014-07-15 15:24:10
【问题描述】:

我有一个简单的 CGridView,它根本没有显示任何数据。

我已经记录了由 CDbCriteria 构建的查询,并且有一些使用 mysql 默认字段值的 LIKE 条件,因此 MySQL 在必填字段中搜索具有默认值的条目。

由于我没有匹配此条件的条目,它返回 0 行。但问题是,我不需要这些 LIKE。有没有办法禁用它?

这是视图:

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
        array(
            'name' => 'name',
            'type' => 'raw',
            'value' => 'CHtml::encode($data->name)'
        ),
        array(
            'name' => 'email',
            'type' => 'raw',
            'value' => 'CHtml::link(CHtml::encode($data->email), "mailto:".CHtml::encode($data->email))',
        ),
    ),
));

控制器:

public function actionUsers() {
            $model = new Users();
            $this->renderPartial('users',array(
                'model' => $model,
            ));
}

模型用户的功能搜索:

return new CActiveDataProvider(get_class($this), array(
        'criteria'=>$criteria,
                    'sort'=>array(
                        'defaultOrder'=>'user ASC',
                    ),
                    'pagination'=>array(
                            'pageSize'=>5
                    ),
));

和记录查询:

SELECT * FROM `users` `t` WHERE (((((email LIKE :ycp0) AND (`group` LIKE :ycp1)) AND (gender LIKE :ycp2)) AND (city LIKE :ycp3)) AND (name LIKE :ycp4)) AND (av_url LIKE :ycp5) ORDER BY `t`.`name` LIMIT 5. Bound with :ycp0='%NotSet%', :ycp1='%3%', :ycp2='%Secret%', :ycp3='%NotSet%', :ycp4='%NotSet%', :ycp5='%noav.jpg%'

【问题讨论】:

标签: php mysql yii


【解决方案1】:

我是 Stackoverflow 的新手,没有足够的声誉来发表评论,否则我会要求您分享有关如何在 $model->search() 函数中配置 CDbCriteria 对象的更多信息。

但是,我怀疑您在compare 方法中使用了部分匹配,可以通过在$partialMatch 参数中传递false 来禁用它,如下所示:

$criteria = new CDbCriteria;
$criteria->compare('email', $someValue, false);

或者,由于false是默认值,你可以简单地写:

$criteria->compare('email', $someValue);

【讨论】:

  • 我也没有足够的声誉来就我自己的问题发表回答:) 但解决方案是控制器或视图中的$model->unsetAttributes();。无论如何感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多