【发布时间】:2017-04-23 16:03:09
【问题描述】:
我正在尝试将 object 传递给 partial() 视图助手。虽然使用普通变量可以正常工作,但我无法将对象传递给此函数。
例如,在部分使用$this->test 时,这可以正常工作:
$this->partial("module/folder/partial.phtml", array(
"test" => "foo",
));
但对object 执行相同操作将不会导致任何部分结果:
$this->partial("module/folder/partial.phtml", array(
"test" => $this,
));
我什至尝试过使用setObjectKey,也没有唤醒:
$this->partial()->setObjectKey("test");
$this->partial("module/folder/partial.phtml", $this);
有没有办法将object 传递给 ZF2 中的单个部分?
我想这样做,因为我的视图实际上包含了部分需要的许多信息。我可以将它们全部逐行添加到部分中,但这只是开销......
【问题讨论】:
-
partial viewhelper 的第二个参数应该只是一个数组,您应该能够将对象或您想要的任何东西传递给partial。在部分中,您应该使用键作为变量:
$test以获取部分中的对象。也许您可以添加您尝试过的结果以及如何在部分中调用变量。 -
@Kwido 正如问题中所说,我使用了
$this->test,但我也尝试了$test。但两者都不起作用。结果是,您无法访问部分中原始对象的任何属性。我做了一些调试,父视图的$this和部分视图的$test都是类类型Zend\View\Renderer\PhpRenderer,一般来说是正确的。但是使用$test->foo访问部分中的属性不会返回任何内容,而使用$this->foo在父级中使用相同的属性会返回预期值...
标签: php zend-framework zend-framework2 partials