Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cakephp在同一控制器中的两个方法之间形成数据、会话和重用视图_Php_Cakephp - Fatal编程技术网

cakephp在同一控制器中的两个方法之间形成数据、会话和重用视图

cakephp在同一控制器中的两个方法之间形成数据、会话和重用视图,php,cakephp,Php,Cakephp,新手php问题 我有一个文本框,用户在其中搜索某些内容,并返回一组结果(控制器中的search()方法)。当我单击链接时,我希望得到更多信息 显示(控制器中的searchMore()方法) 问题 1) 如何返回到相同的search.ctp页面,而不是创建新的search\u more.ctp?使用元素还是php包含?使用重定向? 2) 从searchMore()返回文本框时,如何在文本框中保留用户输入数据?cakephp是否为会话等提供任何帮助 谢谢您的问题看起来像是个问题。最简单的解决方案是,

新手php问题

我有一个文本框,用户在其中搜索某些内容,并返回一组结果(控制器中的search()方法)。当我单击链接时,我希望得到更多信息 显示(控制器中的searchMore()方法)

问题

1) 如何返回到相同的search.ctp页面,而不是创建新的search\u more.ctp?使用元素还是php包含?使用重定向? 2) 从searchMore()返回文本框时,如何在文本框中保留用户输入数据?cakephp是否为会话等提供任何帮助


谢谢

您的问题看起来像是个问题。最简单的解决方案是,只使用两个页面对搜索结果进行分页,然后您可以轻松地将它们切换到其他页面。另一种方法是像Twitter一样分页

更新:(你最好以评论的形式回答。)

好吧,如果我理解正确的话,你们有相同的控制器,相同的搜索条件,但你们把它们放在不同的位置,而你们需要它们使用相同的视图文件

对于问题1),可以使用functin

在您的“更多搜索”操作中

对于问题2),您可以将用户的输入数据作为两个操作之间的参数传递,也可以将其存储在中


但这看起来有点奇怪。据我所知,更好的解决方案是一次操作完成工作,因为您具有相同的条件和相同的输出格式。然后,这将是一项关于分页的工作。

我经常做类似的事情,比如PhpMyAdmin中的插入记录机制(从25条记录开始)

searchMore()
中,使用
$this->render('search')将返回原始视图。传递一个变量,如:

$this->set('searchMore',true)searchMore()方法中的code>

在视图中,如果需要,使用条件(
if($searchMore){…}
)在视图中根据需要显示备用HTML

    $this->render('search');