在控制器中使用重定向时,是否可以在url中隐藏传递的参数? Yii 1.1

时间:2016-02-12 07:24:48

标签: model-view-controller yii

我正在尝试将参数从我的控制器传递到我的视图。 我的代码是这样的:

$this->redirect(array('marketingEmail/mailToSend','lot'=>$lotNum));

public function actionMailToSend()
{ 
   $lotValue = Yii::app()->request->getQuery('lot');
   $model=new Marketing();
   $this->render('_mailList',array(
        'lotVal'=>$lotValue,'model'=>$model,
   ));
}

我当前的网址如下:http://localhost/test/marketingEmail/mailToSend/lot/1

我想要我的网址:http://localhost/test/marketingEmail/mailToSend

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

不,这是不可能的。

您可以将会话变量用于您的目的。将您的ID保存在会话中,并在重定向的页面中获取此ID。

要获得更多解决方案,您可以参考this网址。

答案 1 :(得分:0)

不,使用PHP进行HTTP POST重定向是不可能的。使用用户浏览器端的唯一方法。例如,使用表单生成页面并从window.onload提交。

答案 2 :(得分:0)

您可以在接受POST的REST API函数上使用curl_exec。

David Walsh在2008年撰写了一篇题为:Execute a HTTP POST Using PHP CURL

的文章

引自博文:

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

否则,请使用javascript。