Question

I'm trying to update a row when a user gets an authentication key, but my $model->attributes remain empty when I save my $data array to them. Here's what I have:

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>";
        }
    }
}

prints out to

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

what am I overlooking?

Was it helpful?

Solution

$model->attributes = $key; will not work, because $this->findbyAttributes returns a type of CActiveRecord(CModel).

To copy attributes from one model to another, use the setAttributes() method with the second flag set to false.

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

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top