出于某种原因,我不能用正确的语法将变量从我的控制器(profileController)传递给部分(video.phtml)。
我知道你将变量传递给像这样的视图
$this->view->somedata = "somedata";
然后用
将其拉到视图中< ?= $this->somedata ?>
你怎么会这样做?
答案 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; ?>