gpt4 book ai didi

php - Yii 加入后忽略自定义字段

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:39 25 4
gpt4 key购买 nike

当我添加 $criteria->with=array('profile'); 字段 revent_datetime 总是返回 NULL,但是没有 with revent_datetime 返回正确。为什么会发生 with 标准?

Controller .php

public function actionIndex()
{
$dayofweek = date('w');
$criteria = new CDbCriteria;
$criteria->select=array("
CASE
WHEN weekday >= $dayofweek
THEN CONCAT( DATE_ADD(CURDATE(), INTERVAL weekday - $dayofweek DAY), ' ', event_time )
ELSE CONCAT( DATE_ADD(CURDATE(), INTERVAL 7 - $dayofweek + weekday DAY), ' ', event_time )
END as revent_datetime,

CASE
WHEN weekday >= $dayofweek AND list_time IS NOT NULL
THEN CONCAT( DATE_ADD(CURDATE(), INTERVAL weekday - $dayofweek DAY), ' ', list_time )
ELSE CONCAT( DATE_ADD(CURDATE(), INTERVAL 7 - $dayofweek + weekday DAY), ' ', list_time )
END as rlist_datetime
");

$criteria->with=array('profile'); // Thats the line w/ problem.

$dataProvider=new CActiveDataProvider('Eventsreminder', array(
'criteria' => $criteria
));

$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}

输出:

$dataProvider->profile->name = Profile Test
$dataProvider->revent_datetime = NULL // here is the problem
$dataProvider->rlist_datetime = 2013-01-11 20:00:00

最佳答案

好吧,如果您在选择中使用函数,则必须创建 CDb 表达式:

$criteria->select=array(
new CDbExpression("CASE
WHEN weekday >= $dayofweek
THEN CONCAT( DATE_ADD(CURDATE(), INTERVAL weekday - $dayofweek DAY), ' ', event_time )
ELSE CONCAT( DATE_ADD(CURDATE(), INTERVAL 7 - $dayofweek + weekday DAY), ' ', event_time )
END as revent_datetime"),
new CDbExpression("CASE
WHEN weekday >= $dayofweek AND list_time IS NOT NULL
THEN CONCAT( DATE_ADD(CURDATE(), INTERVAL weekday - $dayofweek DAY), ' ', list_time )
ELSE CONCAT( DATE_ADD(CURDATE(), INTERVAL 7 - $dayofweek + weekday DAY), ' ', list_time )
END as rlist_datetime")
);

关于php - Yii 加入后忽略自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com