我正在调用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;
}
答案 0 :(得分:0)
尝试以下代码:
public function init()
{
$this->onAfterFind=array($this,'afterFindCustom');
parent::init();
}
public function afterFindCustom()
{
$this->owned = true;
parent::afterFind();
}
答案 1 :(得分:0)
最后我发现了。这是CJSON :: encode问题的问题。此方法仅编码模型的属性。它不编码任何关系或动态属性。所以我写了我自己的功能,它的确有效。!
希望这有助于将来的某个人
感谢所有人 史密斯