Yii2 - Как передать идентификатор модели через редирект - PullRequest
0 голосов
/ 18 октября 2018

Привет. Я хочу передать идентификатор модели в редирект, используя url.Но когда я пытаюсь передать его, я получаю сообщение об ошибке

Ошибка

Объект не найден!Запрашиваемый URL не найден на этом сервере.Ссылка на ссылающейся странице кажется неправильной или устаревшей.Пожалуйста, сообщите автору этой страницы об ошибке.

Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.

Ошибка 404

Эта ошибкагенерирует, когда я пытаюсь сделать это

$this->redirect(Url::to('/process?file_name=' . $file_name . "&header_no=" . $_POST['header_no'],['id'=>$model->id]));

URL: http://localhost:225/process?file_name=excel_12.xlsx&header_no=1 URL неверный, правильный должен быть таким http://localhost:225/inventory-web/backend/web/....../...

Ошибка2:

Не найдено (# 404) Страница не найдена.Вышеуказанная ошибка произошла, когда веб-сервер обрабатывал ваш запрос.

Пожалуйста, свяжитесь с нами, если считаете, что это ошибка сервера.Спасибо.

URL: http://localhost:225/inventory-web/backend/web/process?file_name=excel_12.xlsx&header_no=1?id=1

Как мне передать идентификатор модели?

Любая помощь будет высоко ценится

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

как в yii2 ref https://www.yiiframework.com/doc/api/2.0/yii-web-controller#redirect()-detail

вы можете использовать

массив в формате [$ route, ... пары имя-значение ...] (например, ['site / index', 'ref' => 1]) yii \ helpers \ Url :: to () будет использоваться для преобразования массива в URL

$this->redirect(['/process', 'file_name'=> $file_name, 
                             'header_no'=> $_POST['header_no'] ,
                             'id'=>$model->id]);
0 голосов
/ 19 октября 2018

Вы также можете использовать перенаправление из ответа:

 Yii::$app->response->redirect(['/process', 'file_name'=> $file_name,
            'header_no'=> $_POST['header_no'] ,
            'id'=>$model->id]);
0 голосов
/ 18 октября 2018

Я пробовал вот так, и он прекрасно работает для меня.

$this->redirect('/didmaster/didtenant?id=' . $model['em_id']);

Попробуйте,

 $this->redirect('/process?file_name=' . $file_name . "&header_no=" . $_POST['header_no'] . "&id=" . $model->id);

или

 $this->redirect(array(
        'process',
        'file_name' => $file_name,
        'header_no' => $_POST['header_no'],
        'id' => $model->id
    ));
...