TimestampBehavior::className(), 'value' => function(){ return date('Y-m-d H:i:s' ); } ], [ 'class' => AccountAwareBehavior::className(), ], [ 'class' => UserAwareBehavior::className(), ], ], parent::behaviors()); } /** * @inheritdoc */ public function rules() { return [ [['id_account', 'name', 'money'], 'required'], [['id_account' , 'money'], 'integer'], [['name'], 'string', 'max' => 64], [['comment'], 'string', 'max' => 255], [['id_account'], 'validateAccount'], ]; } public function validateAccount($attribute,$params){ $this->_account = Account::findOne(['id_account' => $this->id_account] ); if ( !isset( $this->_account ) ){ $this->addError($attribute, Yii::t('common/money-movement', 'Invalid account!')); } } /** * @inheritdoc */ public function attributeLabels() { return [ 'id_money_movement' => Yii::t('common/money-movement', 'Id Money Movement'), 'id_account' => Yii::t('common/money-movement', 'Id Account'), 'id_user' => Yii::t('common/money-movement', 'Id User'), 'name' => Yii::t('common/money-movement', 'Name'), 'type' => Yii::t('common/money-movement', 'Type'), 'money' => Yii::t('common/money-movement', 'Money'), 'comment' => Yii::t('common/money-movement', 'Comment'), 'created_at' => Yii::t('common/money-movement', 'Created At'), 'updated_at' => Yii::t('common/money-movement', 'Updated At'), ]; } public function afterSave($insert, $changedAttributes){ parent::afterSave($insert, $changedAttributes); if ( $insert) { $this->createTransfer(); } } protected function createTransfer(){ $transfer = Transfer::createMoneyMovementOutTransfer($this->_account, $this); $transfer->id_user = Yii::$app->user->id; $transfer->save(); } }