在CakePHP中,将带有操作的视图从一个控制器呈现到另一个控制器的视图中

在CakePHP中,将带有操作的视图从一个控制器呈现到另一个控制器的视图中,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我正在尝试将一个包含动作的视图从一个视图渲染到另一个视图 我有一个名为stocks.ctp(使用stockscocontroller)的视图,我想在home.ctp(HomeController)中渲染它,我想我可以在home.ctp中执行,但这不起作用 我还尝试将放入home.ctp中,但这只会覆盖整个视图,并且只呈现stocks.ctp 如何在home.ctp内部显示stocks.ctp 这只是一个例子:下面是 <?php $this->start('stocks'

我正在尝试将一个包含动作的视图从一个视图渲染到另一个视图

我有一个名为
stocks.ctp
(使用
stockscocontroller
)的视图,我想在
home.ctp
HomeController
)中渲染它,我想我可以在
home.ctp
中执行
,但这不起作用

我还尝试将
放入
home.ctp
中,但这只会覆盖整个视图,并且只呈现
stocks.ctp

如何在
home.ctp
内部显示
stocks.ctp

这只是一个例子:下面是

       <?php $this->start('stocks');?>
         <div>
            content
         </div>
        <?php $this->end(); ?>

我怎样才能正确地渲染它?我在这里找到了很多解决方案,但都没有成功,我也尝试过使用cookbook的文档,但没有成功。我不知道我做错了什么。

你应该把这个放在你的家庭控制器里。。
$this->render('Stocks/Stocks')

在控制器操作中执行

$this->autoRender = false; 
$this->render('Stocks/stocks');
在控制器操作结束时,执行以下操作:

$this->autoRender = false; 
$this->render('Stocks/stocks');

您应该了解如何在CakePHP文档中创建元素。 创建元素后,您应该能够在应用程序中的任何位置使用它们

  • 在View/elements内部创建元素,例如:/View/elements/stocks.ctp
  • 在home.ctp中请求它
  • 例如:

    <?php
    
        echo $this->element('stocks');
    
    ?>
    
    
    
    应该呈现元素


    在这里阅读:

    酷,我现在正在看。我知道我需要向它们传递一个变量,我可以用find方法来实现吗?文档中写着
    ,但我能做什么
    应该在控制器中使用find方法。视图需要只包含展览代码。在您的控制器中,您可以执行:$posts=$this->Post->find('all')$此->设置('posts',$posts);然后$posts将在您的视图中可用,因此:$this->element('posts',array('data'=>$posts));希望能有帮助。requestAction对有效,但由于新请求,您会损失一点性能。我更喜欢直接在当前控制器操作中设置变量。您可以在此处阅读有关$this->requestAction的更多信息: