Yii将数组保存到模型属性

时间:2013-10-02 23:18:34

标签: php yii yii-cmodel

我正在尝试在用户获取身份验证密钥时更新一行,但是当我将$ data数组保存到它们时,我的$ model->属性仍为空。这就是我所拥有的:

public function redeemKey($key,$subscription_id){
    $key = $this->findbyAttributes(array('key'=>$key));
    if(count($key) === 1){
        if(is_null($key['date_used'])){
            $model = new NewsItemPass;
            $model->attributes = $key;
            echo "<pre>",print_r($model->attributes),"</pre>";
        }
    }
}

打印到

Array
(
    [id] => 
    [key] => 
    [date_created] => 
    [date_used] => 
    [date_expired] => 
    [news_subscription_id] => 
    [duration] => 
)

我在俯瞰什么?

1 个答案:

答案 0 :(得分:3)

$model->attributes = $key;无效,因为$this->findbyAttributes会返回一种CActiveRecord(CModel)。

要将属性从一个模型复制到另一个模型,请使用setAttributes()方法,并将第二个标志设置为false。

$model->setAttributes($key->attributes, false);

http://www.yiiframework.com/doc/api/1.1/CModel#setAttributes-detail