Прежде чем разрабатывать какой-то более-менее большой продукт на фреймворке. Я бы посоветовал, углубленно изучить его возможности.
Сегодня, речь пойдет об экшинах. Но не о тех что "жестко" прописываются в наших контроллерах. А тех, которые можно использовать в разных контроллерах, подключая через метод контроллера "actions()":
public function actions() { $actions = parent::actions(); $actions['aj-avatar-upload'] = [ 'class' => 'commonactionuserAjaxAvatarUploadAction', ]; $actions['aj-avatar-delete'] = [ 'class' => 'commonactionuserAjaxAvatarDeleteAction', ]; return $actions; }
С подобным "действием" мы сталкиваемся еще в самом начале своего пути, открывая файл конфига, где прописывается action ошибки:
'errorHandler' => [ 'errorAction' => 'site/error', ],