将变量从Controller传递到Zend中的Partial

时间:2010-11-19 11:29:36

标签: zend-framework

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

我知道你将变量传递给像这样的视图

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

然后用

将其拉到视图中
< ?= $this->somedata ?>
你怎么会这样做?

1 个答案:

答案 0 :(得分:15)

当您渲染部分(可能来自视图,右侧)<?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; ?>