数据库中没有对应字段的Yii2模型属性

时间:2015-04-09 13:32:09

标签: yii2

总而言之,我正在构建一些简单的审计功能,将数据库记录的先前值存储在审计表中。我使用“getOldAttributes”来查找被审计记录的所有数据库列的旧值。对于一个模型,我有另一个名为permissions的属性(不存在作为数据库列),我想要存储在其他oldAttributes旁边。添加“public $ permissions;”在我的ActiveRecord类的顶部工作是将数据从表单传递到模型进行处理,但该属性不包含在getOldAttributs调用中。我已经阅读了有关使用getter / setter来使该属性像常规AR属性一样工作的各种想法,但没有任何工作,甚至没有任何意义。

TLDR; AR类具有我希望能够像所有其他数据库属性一样访问的公共属性(但实际上没有保存在数据库中)。

1 个答案:

答案 0 :(得分:1)

尝试覆盖ActiveRecord的getAttributes()方法:

public function getAttributes($names = null, $except = [])
{
    return array_merge(['permissions'], parent::getAttributes($names, $except));
}