我正在尝试在用户获取身份验证密钥时更新一行,但是当我将$ 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] =>
)
我在俯瞰什么?
答案 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