2010-11-19 182 views
6

出于某种原因,我无法使用正确的语法将变量从我的控制器(profileController)传递给partial(video.phtml)。将控制器中的变量传递给Zend中的部分

我知道你传递变量的观点是这样

$this->view->somedata = "somedata"; 

,你把它的观点与

< ?= $this->somedata ?> 

你会如何对部分做到这一点?

回答

14

当您渲染部分(可能来自视图,右)<?php echo $this->partial(scriptpath, [module], [data])?>时,您还可以传入脚本所在的模块以及部分应该有权访问的数据。这是部分原因,只允许它看到某些数据。

因此,假设您有以下情况:将大量数据从控制器推入视图。在某些部分中,将在应用程序中的多个位置重新使用,您希望确保它只能访问特定类型的数据,并且希望数据在呈现时始终保持一致。那么你会做这样的事情:

在控制器:

$this->view->namedVariableThatCouldBeWhatever = $data; 

在视图:

echo $this->partial(
    $partialName, 
    array (
    'standardName' => $this->namedVariableThatCouldBeWhatever 
) 
); 

在部分:

<?php foreach($this->standardName as $item) : ?> 
    //render partial 
<?php endforeach; ?> 
+0

感谢帕特里克!你是最好的 ! – TuK 2010-11-19 12:11:12

+0

最好?同意。 – PurplePilot 2011-06-15 11:44:46

+0

太棒了! Patrik你的摇滚。 – 2014-07-11 11:29:39

相关问题