我使用CakePHP 2.5.2。我有标准表单,我通过POST方法发送。
我在控制器中捕获此帖子并显示数据库中的数据,但是当有人刷新页面时,我无法再次读取数据,因为参数是由POST请求提供的。所以,我想建立这样的URL:
http://example.com/controller/action/**firstDataFromPost**/**secondDataFromPost**
它使我的网站可刷新,但我不知道如何修改网址。
答案 0 :(得分:2)
这里有两个主要选项:
使用GET HTTP方法而不是POST意味着您的变量会自动附加到查询字符串的末尾:
http://example.com/controller/action?firstDataFromPost&secondDataFromPost
您可以将表单发布到将组合所需变量的操作,并将您重定向到不再具有依赖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