繁体   English   中英

Yii CGridView和CDbCriteria中的默认值

[英]Yii CGridView and default values in CDbCriteria

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

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

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

这是视图:

$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%'

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

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

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

或者,由于false为默认值,因此您可以简单地编写:

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

暂无
暂无

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

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