@hollanditkzn

Как переносить user по сессии в другой контроллер?

Вопрос в том, что до конца не понимаю как передавать сессии. Пишет ошибку Getting unknown property: yii\web\Request::session
У меня не работает сессия, много раз менял сессии в разных контроллерах и у меня ничего не выходит.
Есть 2 контроллера после авторизации пользователь попадает в crud таблицу, которая находится на другом контроллере. Можно весь код посмотреть на https://github.com/hollandit/crm.git
А сам код как я менял вот примерно frontend/controllers/SiteController
public function actionLogin()
    {
        if (!Yii::$app->user->isGuest) {
            return $this->goHome();
        }

        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
            $id_user = Yii::$app->session->get('id');
            $session = Yii::$app->request->session;
            $session ->set('id', $id_user);
            return $this->redirect(['/zakaz/index', 'id'=> $id_user]);
        } else {
            return $this->render('login', [
                'model' => $model,
            ]);
        }
    }


И в frontend/controllers/ZakazController
public function actionIndex()
    {
        $searchModel = new ZakazSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
            'id_user' => Yii::$app->session->get('id')
        ]);
    }
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
А зачем Вам сессия для авторизованного пользователя?
Все данные этого пользователя хранятся в Yii::$app->user->identity
Ответ написан
Комментировать
@masterfreelance
программист со стажем
Полностью согласен с slo_nik
И код гораздо лучше станет.
"Брюки превращаются....."
public function actionLogin()
    {
        if (!Yii::$app->user->isGuest) return $this->goHome();

        $model = new LoginForm();
        return ($model->load(Yii::$app->request->post()) && $model->login()) ? 
            $this->redirect(['/zakaz/index',]) :
            $this->render('login', ['model' => $model,]);
    }

public function actionIndex()
    {
        $searchModel = new ZakazSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
            'id_user' => (!Yii::$app->user->isGuest)?Yii::$app->user->identity->id:0;
        ]);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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