我有一个模型的属性,应该在从数据库加载后进行修改。
我可以扩展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数组。
答案 0 :(得分:1)
如果我理解你的问题,我认为你可以在模型中使用一个属性:
public class Model {
public function getLanguagesArray()
{
return $this->convertToPHPArray($this->languages);
}
}
然后,使用它:
$arr = $model->languagesArray;