Блог хеллоуворлдщика

Ajax фильтр для Yii2


Все помнят, в Yii1 была возможность фильтровать доступ к экшену, если запрос не через ajax, например. В Yii2 такой возможности из коробки нет. Есть только фильтрация, которая проверяет через какой Http-метод был выполнен запрос и какой разрешен. Да и в общем-то такая возможность на проверку Ajax это или не Ajax не особо нужна, но, сволочь, нужна. Поэтому со временем и мне понадобилось. Я сразу не стал писать велосипед, а поискал на GitHub. Нашел там велосипедистое решение, которое потом форкнул и переписал. Получилось норм, поэтому можете пользоваться на здоровье! =) Жми сюда!

share via vkontakte share via facebook share via mailru share via odnoklassniki share via twitter

Комментарии [4]

[PENDALF] 14 мая 2015 г., 17:30:40

Спасибо Михалыч! Очень помог твой фильтр, сэкономил время, всё работает! :)

Администратор [BUPY7] 17 мая 2015 г., 0:30:47

Пожалуйста! Рад стараться. =)

[ARCHIEDEVELOPER] 07 февр. 2016 г., 18:22:40
public function beforeAction($event)
    {
        $existActionInFilter = in_array($event->action->id, $this->actions);
        $isNotAjaxRequest = !Yii::$app->request->isAjax;
        if ($existActionInFilter && $isNotAjaxRequest) {
            throw new BadRequestHttpException('This URL can call only via Ajax.');
        }
    }

Можно чуть-чуть подправить

Администратор [BUPY7] 07 февр. 2016 г., 23:01:44

Плохая правка.