0

寻找执行以下操作的最有效方法:

细节:

1个控制器:

  • 报告

2 意见:

  1. 创建报告
  2. 查看报告

create_report有一个表单,用于收集将在view_report视图中使用的信息。我知道表单中输入的数据可通过$this->session->data元素在create_report视图中使用。

寻求帮助:

我需要做的是将相同的信息($this->session->data)从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 的这种情况的帖子。

4

3 回答 3

2

您可以通过控制器操作 create_report 绕过数据处理,并将它们直接发送到报告视图并在需要时在那里进行验证。只需在 create_report.ctp 视图中更改表单创建。

$this->Form->create('Report', array('action' => 'view_report'));

数据将直接提交给 view_report 操作并在 $this->request->data 中可用

于 2013-01-01T15:37:56.140 回答
2

如果您在会话中存储了数据,那么您可以直接从 view_report 视图或任何其他视图访问它。为此,您可以使用会话助手。

$this->Session->read('whatever');

要使用这种方法,请确保您已加载 Session Helper。更多信息在这里

或者,您可以像使用任何其他数据一样,在控制器中使用 $this->set 将会话数据传递给视图。

如果你想,为了调试,查看当前会话的内容,你可以从你的视图中转储会话......

var_dump($this->Session);
于 2013-01-01T15:48:26.763 回答
0

这种方式也可以使用,在这种情况下,您可以将任何操作发送到任何控制器

$this->Form->create('Report', array('url' => '/my_contoller/my_action'));
于 2014-08-13T16:26:21.297 回答