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

TuK*_*TuK 6 zend-framework

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

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

$this->view->somedata = "somedata"; 
Run Code Online (Sandbox Code Playgroud)

然后你把它拉到视图中

< ?= $this->somedata ?>
Run Code Online (Sandbox Code Playgroud)

你怎么会这样做?

Pat*_*and 15

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

因此,假设您有以下情形:您将大量数据从控制器推送到视图中.在某个部分中,它将在您的应用程序的多个位置重复使用,您希望确保它只能访问某种类型的数据,并且您希望数据在呈现时始终如一地命名.然后你会做类似的事情:

在控制器中:

$this->view->namedVariableThatCouldBeWhatever = $data;
Run Code Online (Sandbox Code Playgroud)

在视图中:

echo $this->partial(
  $partialName, 
  array (
    'standardName' => $this->namedVariableThatCouldBeWhatever
  )
);
Run Code Online (Sandbox Code Playgroud)

在部分:

<?php foreach($this->standardName as $item) : ?>
   //render partial
<?php endforeach; ?>
Run Code Online (Sandbox Code Playgroud)