Yii2如何在加载方法后修改模型属性? (比如afterFind方法)

时间:2017-05-09 11:47:08

标签: yii2

我有一个模型的属性,应该在从数据库加载后进行修改。

我可以扩展afterFind方法,它可以将varchar值转换为php数组。所以它可以找到。

但是当加载模型时,我不知道如何将该varchar转换为php数组。

我尝试过规则,但不起作用:

[['languages'], 'each', 'rule' => ['string']],

或者这个

[['languages'], 'safe'],

所以这一个在afterFind之后起作用:

public function afterFind()
{
    $this->languages = $this->convertToPHPArray($this->languages);
    parent::afterFind();
}

顺便说一句,我尝试使用此对话扩展 init __构造函数方法,但在加载方法之后没有成功languages属性仍然是一个字符串而不是php数组。

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,我认为你可以在模型中使用一个属性:

public class Model {

      public function getLanguagesArray()
     {
             return $this->convertToPHPArray($this->languages);

     }

}

然后,使用它:

$arr = $model->languagesArray;