寻找最有效的方法来执行以下操作:
1个控制器:
2次观看:
create_report 有一个表单,其中收集将在 view_report 视图中使用的信息。 我知道表单中输入的数据可通过 $ this-> session-> data 元素在 create_report 视图中使用。
我需要做的是将相同的信息($ this-> session->数据)从 create_report 视图发送到 view_report 视图(通过控制器,我假设)。
只是一个链接:
echo $this->Html->link('View Report', array('controller' => 'reports', 'action' => 'view_report'));
但这只会让用户进入 view_report 视图。它不会将 $ this-> session-> data 中的信息发送到该视图。
我认为它与Js助手有关,但我无法找到任何直接处理CakePHP 2.x这种情况的帖子。
答案 0 :(得分:2)
您可以通过控制器操作create_report绕过数据处理,并将它们直接发送到报告视图,并在需要时进行验证。只需在create_report.ctp视图中更改表单创建。
$this->Form->create('Report', array('action' => 'view_report'));
数据将直接提交给view_report操作,并在$ this-> request-> data
中提供答案 1 :(得分:2)
如果您按照说明将数据存储在会话中,则可以直接从view_report视图或任何其他视图访问该数据。为此,您可以使用会话助手。
$this->Session->read('whatever');
要使用此方法,请确保已加载会话助手。有关它的更多信息here。
或者您可以使用控制器中的$ this->设置将会话数据传递给视图,就像使用任何其他数据一样。
如果您希望为了调试而查看当前会话的内容,可以从视图中转储会话...
var_dump($this->Session);
答案 2 :(得分:0)
也可以使用这种方式,在这种情况下,你可以发送到任何控制器的任何动作
$this->Form->create('Report', array('url' => '/my_contoller/my_action'));