Zend框架如何在使用render()时从视图和控制器获取值?

时间:2015-12-15 19:35:50

标签: php zend-framework zend-framework2

我在layout/formsde/url.phtml中有这段代码:

<?php
$use_url = $this->use_url;
foreach($this->match_de as $k=>$v) {
  if($this->serverUrl(true) == $k) {  
    $use_url = $v;  
  }
}
?>

我有1000页,其中包含以下行:

<?=$this->render("layout/formsde/url");?>

现在问题是$this->use_url并且$this->match_de为空,它没有从控制器获取值,如下所示:

return new ViewModel(array(
    'description' => $this->de_desc,
    'use_url' => $this->layout()->use_url,
    'match_de' => $this->layout()->match_de,          
));

如何将值传递给 - &gt; render()?所以我有$this->match_de值与控制器中的精确值?

2 个答案:

答案 0 :(得分:1)

您可以将包含所需值的数组传递给渲染

//Example
$this->render('layout/formsde/url', array(
       'use_url' => $this->use_url, 
       'match_de' => $this->match_de)); 

答案 1 :(得分:1)

可以在模板中定义由视图渲染器Zend\View\Renderer\PhpRenderer渲染的变量。您可以将第二个参数作为数组传递。

<?=$this->render("layout/formsde/url", array(
    'description' => $this->de_desc,
    'use_url' => $this->layout()->use_url,
    'match_de' => $this->layout()->match_de,          
));?>

有关PhpRenderer :: render()方法的更多信息,请参阅here