parent::afterSave не возвращяет ничего, вызовите его просто первой строчкой и все
действительно, надо повнимательней с документацией
afterSave() public method
This method is called at the end of inserting or updating a record.
The default implementation will trigger an EVENT_AFTER_INSERT event when $insert is true, or an EVENT_AFTER_UPDATE event if $insert is false. The event class used is yii\db\AfterSaveEvent. When overriding this method, make sure you call the parent implementation so that the event is triggered.
вот так работает
Код: Выделить всё
public function afterSave($insert, $changedAttributes) {
parent::afterSave($insert, $changedAttributes);
if ($insert) {
$auth = Yii::$app->authManager;
$role = $auth->getRole($this->role);
$auth->assign($role, $this->id);
}
}
Ок.А как поступать в случае редактирования присоединения? Например, администратор изменил роль пользователя?
Код: Выделить всё
public function afterSave($insert, $changedAttributes) {
parent::afterSave($insert, $changedAttributes);
if ($insert) {
$auth = Yii::$app->authManager;
$role = $auth->getRole($this->role);
$auth->assign($role, $this->id);
} else {
???
}
}
Или удалил пользователя?
Правила существуют не только для того, чтобы их нарушать.