在行为Yii2中访问模型的当前实例

时间:2017-12-13 10:01:12

标签: yii2 yii2-basic-app yii-behaviour

是否可以在活动记录的行为方法中访问模型的当前实例?我计划的是使用当前实例的属性值来帮助配置返回值。请参阅以下示例:

public function behaviors()
{
    $behaviors = parent::behaviors();

    $behaviors[] = [
        'class' => AttributeBehavior::className(),
        'attributes' => [
             ActiveRecord::EVENT_BEFORE_INSERT => 'line_number',
        ],
        'value' => function ($event) {
            $maxLineNum = $this->getQuestion()->max('line_number'); // Is this possible?

            return ++$maxLineNum;
        },
    ];

    return $behaviors;
}

1 个答案:

答案 0 :(得分:1)

使用行为的owner属性:

$maxLineNum = $this->owner->getQuestion()->max('line_number');