在YII框架中的findAll调用之后,将属性添加到activerecord

时间:2012-12-17 15:16:08

标签: activerecord yii

我正在调用findAll方法,我得到了4个字段。我现在想再添加一个名为$owned的字段。 这意味着在我从表中获取记录后,生成的datarecord应包含所拥有的字段。 此外,$owned字段是动态的,具体取决于用户是否是该组的所有者。我尝试使用afterFind。但它也没有用。令人惊讶的是,它将属性$owned添加到对象而不是属性。 我在控制器中使用CJSON::encode($model)来查看输出。$owned字段未显示。 下面是代码

/**
*
* The followings are the available columns in table 'group':
* @property integer $id
* @property string $name
* @property string $created_at
* @property string $updated_at
*/

class Group extends CActiveRecord
{
//adding owned property for groups.true if user is owner

    public $owned;

protected function afterFind()
{

    parent::afterFind();
    //if user is owner of group its true
    $this->owned = true;

}

2 个答案:

答案 0 :(得分:0)


尝试以下代码:

public function init()
    {
        $this->onAfterFind=array($this,'afterFindCustom');
        parent::init();
    }

    public function afterFindCustom()
    {
        $this->owned = true;
        parent::afterFind();
    }

答案 1 :(得分:0)

最后我发现了。这是CJSON :: encode问题的问题。此方法仅编码模型的属性。它不编码任何关系或动态属性。所以我写了我自己的功能,它的确有效。!

希望这有助于将来的某个人

感谢所有人 史密斯