1

这是我的 CActiveDataProvider 查询。

$startDate='2016-02-28';
$endDate='2016-03-05';
     $criteria= new CDbCriteria();
        $criteria->with=array('job','job.serviceType');
        $criteria->order='t.uploaded_date DESC';
        $criteria->select='t.id,t.job_master_id,t.image_path,t.image_name,t.uploaded_date';
     $criteria->condition="SUBSTRING_INDEX(t.`image_name`,'.',-1) in ('jpg','jpeg','png','gif','JPG','PNG','GIF','JPEG') and job.trade_company_id='".Yii::app()->user->getState('TradeCompanyId')."' and job.current_assigned='".Yii::app()->user->id."'";
$criteria->addBetweenCondition('DATE(uploaded_date)', $endDate, $startDate);

这给了我 0 行。但是当我在 mysql 中使用相同的查询时,它会给我正确的结果。以下是相同的mysql查询

SELECT `t`.`job_master_id`
FROM `media` `t`
LEFT OUTER JOIN `job_master` `job` ON ( `t`.`job_master_id` = `job`.`id` )
INNER JOIN `service_type_master` `serviceType` ON ( `job`.`service_type_id` = `serviceType`.`id` )
WHERE (
    (
        SUBSTRING_INDEX( t.`image_name` , '.' , -1 ) IN ( 'jpg', 'jpeg', 'png', 'gif', 'JPG', 'PNG', 'GIF', 'JPEG')
        AND job.trade_company_id = '7' AND job.current_assigned = "14"
    )
    AND (
        DATE( uploaded_date ) BETWEEN '2016-02-28' AND '2016-03-05'
    )
)
ORDER BY `t`.`uploaded_date` DESC

我尝试在 CActiveDataProvider 中将分页设置为 1000,但这不起作用。

$dataProvider= new CActiveDataProvider($model,array('criteria'=>$criteria,'pagination' =>array('pageSize'=>1000)));

即使我将分页设置为false但仍然没有结果

$dataProvider= new CActiveDataProvider($model,array('criteria'=>$criteria,'pagination' =>false));
4

1 回答 1

0

你已经Parse error进入你的$criteria->condition( job.current_assigned="'.Yii::app()->user->id.'"")

尝试用这个字符串替换它:

$criteria->condition="SUBSTRING_INDEX(t.`image_name`,'.',-1) in ('jpg','jpeg','png','gif','JPG','PNG','GIF','JPEG') and job.trade_company_id='".
    Yii::app()->user->getState('TradeCompanyId').
    "' and job.current_assigned='".Yii::app()->user->id."'";
于 2016-03-08T08:42:55.040 回答