P
P
Petr Ponomarev2017-01-30 22:35:08
Yii
Petr Ponomarev, 2017-01-30 22:35:08

How to make a certain action in all controllers in YII2?

As soon as the user enters any page, it is necessary to read from where he came from, his ip and other information, how can this be done universally, in all actions?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
P
paldraken, 2017-01-30
@paldraken

Сделать некий базовый контроллер у которого переопределить метод
beforeAction
В этом методе реализовать вашу логику по считыванию информации.
А затем те контроллеры в которых надо применять эту логику унаследовать от Базового.

class BaseController extends \yii\web\Controller
{
    public function beforeAction($action)
    {
        if (!parent::beforeAction($action)) {
            return false;
        }
        // Тут прописать логику или вызвать отслеживающий сервис
        return true;
    }
}

class MyController extends BaseController
{
    public function actionIndex()
    {
.....

Максим Федоров, 2017-01-31
@qonand

Как только пользователь заходит на любую страницу , надо считывать от куда он пришел, его ip и остальную инфу, как это можно сделать универсально, во всех экшнах?

Все зависит от того что с этими данными стоит делать и зачем вообще эти данные в контроллерах нужны. Лучше всего реализовать отдельный компонент для этих целей, который будет ловить одно из соответствующих событий приложения и делать необходимые Вам действия

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question