1

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

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;
}
4

1 回答 1

2

使用行为的所有者属性:

$maxLineNum = $this->owner->getQuestion()->max('line_number');
于 2017-12-13T11:08:13.633 回答