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

标签 php mysql yii

当我添加 $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/

相关文章:

php - 如何在 Yii2 中获取用户角色?

php - Yii 模块和 createUrl

php - "Unexpected _data T_String" Blade ,Laravel

PHP/MySQL : sql query for searching in all fields

yii - 在 yii2 中生成 404 错误

mysql - 在 MySQL 中查找最小辨别子集

mysql - #1064 - 您的 SQL 语法在 '' 附近有错误

php - mysql 查询 information_schema.GLOBAL_VARIABLES 以获得全文支持

php - 获取服务器的本地日期、时间和微秒

php - 如何在 laravel 中获取每个用户 ID 的最新行?