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

问题描述 投票:0回答:1

长话短说,我正在构建一些简单的审计功能,将数据库记录的先前值存储在审计表中。我使用“getOldAttributes”来查找正在审核的记录的所有数据库列的旧值。对于一个模型,我有另一个名为权限的属性(不作为数据库列存在),我想将其与其他旧属性一起存储。添加“公共$权限;”我的 ActiveRecord 类的顶部正在将数据从表单传递到模型中进行处理,但该属性不包含在 getOldAttributs 调用中。我读过各种关于使用 getter/setter 使该属性像常规 AR 属性一样工作的想法,但没有任何效果,甚至没有任何意义。

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

php yii2
1个回答
1
投票

尝试重写 ActiveRecord 的 getAttributes() 方法:

public function getAttributes($names = null, $except = [])
{
    return array_merge(['permissions'], parent::getAttributes($names, $except));
}
© www.soinside.com 2019 - 2024. All rights reserved.