Yii2-如何通过重定向传递模型ID

时间:2018-10-18 11:37:32

标签: yii2 yii2-advanced-app

嗨,我想使用url重定向传递模型ID。但是当我尝试通过它时,我得到了错误

错误

  

找不到对象!   在此服务器上找不到请求的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网址错误,正确的网址应为http://localhost:225/inventory-web/backend/web/....../...

错误2:

  

未找到(#404)   找不到网页。   Web服务器正在处理您的请求时,发生了上述错误。

     

如果您认为这是服务器错误,请与我们联系。谢谢。

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

如何传递型号ID?

任何帮助将不胜感激

3 个答案:

答案 0 :(得分:2)

我已经尝试过了,对我来说效果很好。

$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
    ));

答案 1 :(得分:1)

您还可以使用来自响应的重定向:

 Yii::$app->response->redirect(['/process', 'file_name'=> $file_name,
            'header_no'=> $_POST['header_no'] ,
            'id'=>$model->id]);

答案 2 :(得分:0)

与yii2参考中一样 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]);