在行为 Yii2 中访问模型的当前实例
Access the current instance of the model in behavior Yii2
是否可以在活动记录的行为方法中访问模型的当前实例?我正在计划的是使用当前实例的属性值来帮助配置 return 值。请看下面的例子:
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;
}
使用 owner 属性 的行为 :
$maxLineNum = $this->owner->getQuestion()->max('line_number');
是否可以在活动记录的行为方法中访问模型的当前实例?我正在计划的是使用当前实例的属性值来帮助配置 return 值。请看下面的例子:
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;
}
使用 owner 属性 的行为 :
$maxLineNum = $this->owner->getQuestion()->max('line_number');