redirect и json-данные

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Татьна
Сообщения: 96
Зарегистрирован: 2018.04.22, 00:17

redirect и json-данные

Сообщение Татьна »

Здравствуйте. У меня 2 вопроса. Подскажите, пожалуйста.
1. Мне надо перенаправить пользователя на другую страницу и передать данные в json-формате.
Фрагмент кода контроллера:

Код: Выделить всё

        \Yii::$app->response->format = Response::FORMAT_JSON;
        $response->data = ['name' => 'Test', 'type' => 2];
Каким образом при перенаправлении пользователя на страницу передать эти данные ?
Фрагмент кода контроллера при перенаправлении:

Код: Выделить всё

        return Yii::$app->response->redirect(['/user/test']);
Можно ли так:

Код: Выделить всё

        return Yii::$app->response->redirect(['/user/test', 'name' => 'Test', 'type' => 2]);
2. На странице, на которую был перенаправлен пользователь, мне надо получить данные, сформированные в json-формате. Хотелось бы получить данные в контроллере.
Можно ли таким образом получить данные:

Код: Выделить всё

        $request = Yii::$app->request->get('name');
Возможно вопросы покажутся глупыми, но я только начала разбираться с json-данными. Пожалуйста, помогите.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: redirect и json-данные

Сообщение yiijeka »

1) При таком коде

Код: Выделить всё

return $this->redirect(['/user/test', 'name' => 'Test', 'type' => 2]); 
будет передан заголовок Location https://developer.mozilla.org/en-US/doc ... s/Location

Покажите код действия '/user/test', где вы ожидаете получить JSON

2) Ах нет кода для 1 нет :)

Тогда всё просто:
Делайте

Код: Выделить всё

return $this->redirect(['/user/test', 'json' => \yii\helpers\Json::encode(['name' => 'Test', 'type' => 2])]);
А в действии '/user/test'
получайте как

Код: Выделить всё

 $json= Yii::$app->request->get('json'); 
if ($json) {
   $array =  \yii\helpers\Json::decode($json)
}
Татьна
Сообщения: 96
Зарегистрирован: 2018.04.22, 00:17

Re: redirect и json-данные

Сообщение Татьна »

yiijeka, огромное Вам спасибо.
Ответить