2017-12-13 5 views
0

アクティブなレコードの動作メソッド内でモデルの現在のインスタンスにアクセスすることは可能ですか?私が計画しているのは、現在のインスタンスの属性値を使用して戻り値を設定することです。行動の動作中のモデルの現在のインスタンスにアクセスするYii2

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

試し '$ maxLineNum =の$ this - >所有者 - > getQuestion() - >最大( 'line_numberを');' –

+0

完璧!ありがとう@InsaneSkull :) – Chisskarzz

答えて

1

使用ownerプロパティ:下記の例を参照してください

$maxLineNum = $this->owner->getQuestion()->max('line_number'); 
関連する問題