更新模型属性时,Yii“未定义错误”

时间:2014-04-08 04:51:41

标签: yii properties model runtime-error yii-cactiverecord

试着在这里趟过Yii,在飞行中学习。我们将项目从unix服务器迁移到Windows服务器,并且遇到了一些日期/时间问题。

我目前有一个模型“活动”,其中有两个属性happend_onhappend_at。我想要做的是动态地将这些属性动态设置为UTC时间。但是,我一直从CActiveRecord.php获取一个属性Activity.happend_onActivity.happend_on 未定义错误。我阅读了几个关于覆盖模型中的set方法的地方(没有工作),并且在你的危险中,重写magic _set方法,也没有用。我真的想动态设置这些属性。

    $activity = $this->loadModel ( $id );
    $time = $activity->happened_on . " " . $activity->happened_at;
    date_default_timezone_set ( "UTC" );
    $utc_date = DateTime::createFromFormat (
        'm/d/Y H:i:s', gmdate ( "m/d/Y H:i:s", strtotime ( $time ) ), new DateTimeZone ( 'UTC' ));

    $date = $utc_date;
    $date->setTimeZone ( new DateTimeZone ( $time_zone ) );
    // THESE ARE THE LINES THAT FAIL - NEED TO UPDATE THE PROPERTIES.
    $activity->happend_on = $date->format("m/d/Y");
    $activity->happend_at = $date->format("H:i:s");

1 个答案:

答案 0 :(得分:0)

您错误地拼写了happend_onhappend_at

您打算使用happened_onhappened_at加上e

如果您仔细阅读错误消息,这非常简单,这正是它所说的:
找不到属性,因为拼错了它们!

下次,如果您收到未定义错误,请检查错误消息中提到的属性。