将帖子参数放入URL

时间:2014-07-16 21:18:24

标签: php url cakephp

我使用CakePHP 2.5.2。我有标准表单,我通过POST方法发送。

我在控制器中捕获此帖子并显示数据库中的数据,但是当有人刷新页面时,我无法再次读取数据,因为参数是由POST请求提供的。所以,我想建立这样的URL:

http://example.com/controller/action/**firstDataFromPost**/**secondDataFromPost**

它使我的网站可刷新,但我不知道如何修改网址。

1 个答案:

答案 0 :(得分:2)

这里有两个主要选项:

使用GET

使用GET HTTP方法而不是POST意味着您的变量会自动附加到查询字符串的末尾:

http://example.com/controller/action?firstDataFromPost&secondDataFromPost

POST后重定向

您可以将表单发布到将组合所需变量的操作,并将您重定向到不再具有依赖HTTP操作的页面。假设您发布到receive()操作:

public function receive() {
    $var1 = $this->data['MyForm']['my_field1'];
    $var2 = $this->data['MyForm']['my_field1'];
    $this->redirect(array('action' => 'showresults', $var1, $var2));
}

然后,您的showresults()操作始终可以访问参数:

public function showresults($var1, $var2) {
    // ... display your results here using these variables
}

...您的网址将如下所示:

http://example.com/controller/showresults/VAR1HERE/VAR2HERE