Cakephp 2.3:如何将数据数组发送到另一个控制器中的动作进行渲染?

Cakephp 2.3:如何将数据数组发送到另一个控制器中的动作进行渲染?,cakephp,cakephp-2.3,Cakephp,Cakephp 2.3,我有一个控制器操作,它应该验证数据,并将结果(数据数组)传递给另一个控制器中的操作以进行进一步处理。我不想为此使用会话组件,因为这被认为是不理想的。鉴于此,是否有其他方法将数据数组传递给另一个控制器/操作 我正在使用CakePHP2.3.10 由于数据数组的长度,我不确定是否可以作为namedParams或查询字符串发送 提前感谢。听起来您在ControllerA中需要做的大部分工作是验证和篡改数据。这可以由附加到它的模型来处理 如果您将逻辑从controllerA移动到ModelA中的一个函数

我有一个控制器操作,它应该验证数据,并将结果(数据数组)传递给另一个控制器中的操作以进行进一步处理。我不想为此使用会话组件,因为这被认为是不理想的。鉴于此,是否有其他方法将数据数组传递给另一个控制器/操作

我正在使用CakePHP2.3.10

由于数据数组的长度,我不确定是否可以作为namedParams或查询字符串发送


提前感谢。

听起来您在ControllerA中需要做的大部分工作是验证和篡改数据。这可以由附加到它的模型来处理

如果您将逻辑从controllerA移动到ModelA中的一个函数,那么您可以直接将数据传递给ControllerB并让ControllerB使用loadModel访问ModelA,从而切断controllerA

例如,在ControllerB中:

$this->loadModel('ModelA');
$validatedData = $this->ModelA->aDataProcessingFunction($this->request->data);

//continue with second step of processing
我有一个控制器动作,用来验证数据和 将结果(数据数组)传递给另一个控制器中的操作 以便进一步处理


为什么不在模型中保留进一步的处理(拥抱fat模型)。

您可以使用如下示例所示的用法来实现这一点:

 App::uses('AnotherController','Controller');
    class ContentsController extends AppController {

      function youAction(){
         $anotherControllerObject = new AnotherController();
         $anotherControllerObject->anotherControllerfunction($longDataArray);

      }
    }

理想的(对我来说也是正确的)方法是根本不重定向。同样的操作——在某种程度上,模型层——可以直接处理数据,而不会带来更多的复杂性。如果我理解正确,您应该能够使用requestAction,看看这个答案:出于性能原因,requestAction应该是最后的手段。如果您能看到一些代码,看看是否有其他方法可以实现这个目标,那将是非常有用的。谢谢您的回复。我的需要不同。我有两个不同的控制器处理专用的工作流程(例如CustomerController和Products Controller),每个控制器处理特定的相关功能/渲染。我希望我可以在这里添加更多。但是这个网站不允许我这么做。但我的需求不同。我有两个不同的控制器处理专用的工作流程(例如,客户控制器和产品控制器),每个控制器处理特定的相关功能/渲染。在我的情况下,CustomerController首先完成它的工作(在用户发布之后),根据用户提供的数据,这个CustomerController必须传递数据(用户提供的数据以及它自己生成的数据)到Products Controller,以便Products Controller可以继续进行剩余的+Prod渲染。这可能是适合我的方法。让我试试这个。谢谢