我有简单的CGridView,它根本没有向我显示任何数据。
我已经记录了由CDbCriteria构建的查询,并且有一些使用mysql默认字段值的LIKE条件,因此MySQL在必填字段中搜索具有默认值的条目。
由于我没有匹配此condidion的条目,因此返回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%'
答案 0 :(得分:1)
我是Stackoverflow的新手,并且没有足够的声誉发表评论,否则我会要求您分享有关如何在$ model-> search()函数中配置CDbCriteria对象的更多信息。 / p>
但是,我怀疑你在compare
方法中使用了部分匹配,可以通过在false
参数中传递$partialMatch
来禁用,如下所示:
$criteria = new CDbCriteria;
$criteria->compare('email', $someValue, false);
或者,由于false
是默认值,您可以简单地写:
$criteria->compare('email', $someValue);