【问题标题】:how to pass parameter on redirect in yii如何在yii中传递重定向参数
【发布时间】:2012-11-22 22:11:11
【问题描述】:

我正在为我的项目使用 Yii 框架;

在成功插入数据库后,我正在使用

将页面重定向到另一个控制器

$this->redirect($this->createUrl('controller/action'));

在重定向期间是否可以像在渲染中一样传递任何参数,

$this->render('selectRefiner', array('param' => $data)

【问题讨论】:

  • 我不明白为什么人们不参考文档。与其他框架不同,yiis 文档是一流的。只需将其作为数组发送,其中第一个元素是控制器操作,其余元素是键值对,您可以将其作为 GET 变量获取。
  • @itachi for me yii 文档不是很清楚

标签: php yii


【解决方案1】:

使用已经拥有的所有参数重定向到相同的操作对我有用。

$this->redirect($_PHP['SELF']);

【讨论】:

    【解决方案2】:

    您只能在 Yii 2 redirect() 中传递 GET 参数。不过我也遇到过类似的情况,我通过使用 Session 存储解决了。

    当然,您可以通过Yii::$app->session 访问当前会话。这是在两个单独的控制器操作中使用它的示例:

    public function actionOne() {
        // Check if the Session is Open, and Open it if it isn't Open already
        if (!Yii::$app->session->getIsActive()) {
            Yii::$app->session->open();
        }
        Yii::$app->session['someParameter'] = 'Bool/String/Array...';
        Yii::$app->session->close();
        $this->redirect(['site/two']);
    }
    
    public function actionTwo() {
        if (isset(Yii::$app->session['someParameter']) {
           $param = Yii::$app->session['someParameter'];
        } else {
           $param = null;
        }
        $this->render('two', [
            'param' => $param
        ]);
    }
    

    所以现在您应该可以在two 视图中访问$param

    更多信息请参考官方类文档。

    【讨论】:

      【解决方案3】:

      试试这个:

      Yii::$app->response->redirect(['site/dashboard','id' => 1, 'var1' => 'test']);
      

      【讨论】:

      • 添加一些解释,说明此答案如何帮助 OP 解决当前问题
      • 实际上我想重定向到另一个模型...渲染函数很好地用于当前模型的重定向页面,但我想将一个模型重定向到另一个模型..
      【解决方案4】:

      试试:

      $this->redirect(array('controller/action', 'param1'=>'value1', 'param2'=>'value2',...))
      

      api yii 1, api yii 2

      【讨论】:

      • 如果您能解释如何在被调用的操作中获取此值,那就太好了?谢谢。
      • 您可以从 - $_REQUEST 或 $_GET 获取实际价值。
      • ... 或者如果您在被调用函数的参数上输入它们 - 就像这个公共函数 actionAction($param1, $param2, ... )
      猜你喜欢
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2014-10-10
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多