请教一个关于使用CDbCriteria出现的问题! [ 新手入门 ]
控制器:
/* 查找未读信息
* @author zxl
* @version $id
*/
public function actionUnreadMessages(){
$model=new Sms('search');
$id = Yii::app()->user->id;
$criteria = new CDbCriteria();
$criteria->condition = "receiver_id=$id AND read_type=1";
$criteria->order = "send_time DESC";
$model->dbCriteria = $criteria;
$this->render('admin',array(
'model'=>$model,
));
}
视图:
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'sms-grid',
'dataProvider'=>$model->search(),
//'filter'=>$model,
'columns'=>array(
'id',
'title',
'content',
array(
'name' => 'poster_id',
'value' => 'Order::model()->getUserName($data->poster_id)',
),
array(
'name' => 'receiver_id',
'value' => 'Order::model()->getUserName($data->receiver_id)',
),
'send_time',
array(
'header'=>'操作',
'class'=>'CButtonColumn',
'template'=>'{view} {delete}',
),
),
)); ?>
数据库: [attach]585[/attach]
问题是把
$criteria->condition = "receiver_id=$id AND read_type=1";
中read_type的值改成0,就能找到值!
为1时数据库日志给的信息:
Querying SQL: SELECT * FROM `dbs_sms` `t` WHERE (receiver_id=2 AND
read_type=1) AND (read_type=:ycp0) ORDER BY send_time DESC LIMIT 10
in E:\wamp\www\bonusaccsys\protected\views\sms\admin.php (58)
in E:\wamp\www\bonusaccsys\protected\controllers\SmsController.php (228)
in E:\wamp\www\bonusaccsys\index.php (13)
为什么会多出一个 AND (read_type=:ycp0)
求高手解答!谢谢!
共 4 条回复
-
lz19881123 回复于 2012-01-09 14:29 举报
你看你的sql语句可以执行不?
-
zhong21jia 回复于 2012-01-20 15:32 举报
额! 问题已经解决了!把数据库的默认值为0改为没有默认值就OK 了! 你这方法会记着!以后遇到了试试!
-
zhong21jia 回复于 2012-01-20 15:33 举报
不可以执行啊。。。。
zhong21jia 江西新余
注册时间:2011-12-03
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱285
- 威望0
- 积分285