CakePHP会话ID路径或其他方法共享url结果-欢迎推荐

CakePHP会话ID路径或其他方法共享url结果-欢迎推荐,php,session,url,cakephp,Php,Session,Url,Cakephp,我正在寻找一个明智的蛋糕方法的建议,创建一个基于会话id的url,我可以与其他人共享,以查看相同的搜索结果,我在我的一端看到 我知道在标准php中,我只需要获取会话id并将其传递到url。但我猜蛋糕可能有一种方法或途径来实现这一点(我猜)。我还没有找到任何具体的东西 有没有关于蛋糕法的最佳方法的想法?或者我需要重新发明这个轮子吗?你问这个问题是因为你在使用POST,结果URL不包括搜索参数,因为它会通过获取 我使用以下设计范例来搜索我构建的所有应用程序 搜索表单作为帖子提交 在控制器操作中,如果

我正在寻找一个明智的蛋糕方法的建议,创建一个基于会话id的url,我可以与其他人共享,以查看相同的搜索结果,我在我的一端看到

我知道在标准php中,我只需要获取会话id并将其传递到url。但我猜蛋糕可能有一种方法或途径来实现这一点(我猜)。我还没有找到任何具体的东西


有没有关于蛋糕法的最佳方法的想法?或者我需要重新发明这个轮子吗?

你问这个问题是因为你在使用POST,结果URL不包括搜索参数,因为它会通过获取

我使用以下设计范例来搜索我构建的所有应用程序

  • 搜索表单作为帖子提交
  • 在控制器操作中,如果表单作为post提交,则提取搜索参数,然后重定向到包含(命名*)参数的URL 因此,操作代码可能如下所示:

    function search() {
        if($this->RequestHandler->isPost()) {
            // let's say we extract parameters called $a and $b here
            $this->redirect(array(
                'action' => 'search',
                'a' => $a,
                'b' => $b
            )
            exit();
        )
        // perform the normal search operation
        // the 'a' and 'b' parameters can be accessed in the $this->params['named']
        // array, automatically extracted by the CakePHP router using the configuration below.
    }
    
    关于命名参数,我会在我的routes.php中设置:

    Router::connectNamed(array('a', 'b'));
    
    这将导致上面的重定向创建一个漂亮、干净的URL,如:

    http://example.com/controller/search/a:FOO/b:BAR
    
    我解决了这个问题:

    search ( ... ) {
        if ($this->RequestHandler->isPost()) {
            $this->Session->write('search_form_sess', $this->data);
            $initial_url = $ApplicantAge . '/' . $SpouseAge . '/' . $NumberChildren . '/' . $Vision . '/' . $Zip;
            $this->redirect(array('action' => 'search', $initial_url));
            exit();
        }
    ...
    

    }

    这称为Post:Redirect:Get模式。要获得一个好的组件来处理这个问题,请查看过滤器的CakeDC插件。有一个名为Utils(我相信)的基本包,它有一个可以使用的PRG组件。谢谢你的建议。目前,我的初始搜索url如下:…计划/搜索/年龄:50/配偶:0/子女:0/愿景:0/zip:92258,但我无法去掉这些值上的前缀。。路由器::连接('/plan/:applicationtage:purposage:NumberChildren:Vision:Zip',数组('controller'=>'plan','action'=>'search'),数组('pass'=>数组('applicationtage','purposage','NumberChildren','Vision','Zip');我不知道你说的前缀是什么意思。你指的是年龄、配偶等吗?您希望url为/search/50/0/9/0/92258?只是好奇,为什么您希望url中包含会话值?泰勒的方法是最常用的方法。我正在存储会话值以保留搜索表单字段数据,因此用户无需不断重新输入不同的搜索条件,只需在优化搜索时更改需要更改的内容即可。