1

我正在调用该findAll方法,我得到了 4 个字段。我现在想再添加一个名为$owned. 所以这意味着在我从表中获取记录后,结果数据记录应该包含拥有的字段。此外,该$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;

}
4

2 回答 2

0

尝试以下代码:

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

    public function afterFindCustom()
    {
        $this->owned = true;
        parent::afterFind();
    }
于 2012-12-17T16:59:09.093 回答
0

最后我发现了。这是 CJSON::encode 问题的问题。此方法仅对模型的属性进行编码。它不编码任何关系或动态属性。所以我写了我自己的函数并且它有效。!

希望这对将来的人有所帮助

感谢所有史密斯

于 2012-12-20T07:43:37.610 回答