@C_oO_re

Есть ли возможность задать фильтры по умолчанию всем контроллерам?

Есть у меня фильтр редиректов (раньше это был просто хэлпер и выполнялся в beforeAction в Controller от которого все контроллеры экстендились), но столкнулся с проблемой что фильтры выполняются перед beforeAction, да и фильтр все же красивее выглядит нежели бехавер. Вот возник вопрос, что бы сделать уж совсем красиво и забыть напрочь про эти SEO-шные штуки и сделать этот фильтр по умолчанию, есть ли варианты?
  • Вопрос задан
  • 2266 просмотров
Решения вопроса 1
NikolasSumrak
@NikolasSumrak
Senior PHP Developer
А что мешает сделать filters() в родительском контроллере?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Берем родитлельский контроллер:
public function filters()
{
	return array(
	    'ie',
	    'language',
	    'banned',
	    'eraserecovery',
	    'empty',
	    'clearban',
	    'jsCookie',
	    'css',
	    'spoiler',
	);
}

все остальные контроллеры наследуем от него и метод filters пишем следующим образом:
public function filters()
{
	$newFilters = array('access',);

	return array_merge(parent::filters(), $newFilters);
}

тоесть, в расширенном методе мержим свои фильтры с фильтрами родительского класса
// как-то косо тображает код этот хайлайтер, но суть, думаю, ясна
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы