【发布时间】:2020-02-25 04:44:40
【问题描述】:
我正在使用 zend MVC 3.1.1 并尝试将变量从被调用的控制器操作传递到布局,但很难找到这样做的方法。我还没有在网上找到解决这个问题的方法。
这是我的基本控制器“渲染”方法,它被调用以创建视图模型。
protected function render ( array $data = array () ) {
$controller = '';
$action = '';
$controller = strtolower( preg_replace( "/^(.*)\\\/", "", $controller ) );
$data[ 'controller' ] = $controller;
$data[ 'action' ] = $action;
$viewModel = new ViewModel( $data );
$viewModel->setTemplate( $controller . "/{$action}.php" );
return $viewModel;
}
这是我的布局的一个片段。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><!-- I WANT TO PUT VARIABLE HERE --></title>
</head>
<body>
<?=$this->content?>
</body>
</html>
如何从控制器的“渲染”操作或执行中的其他任何地方传递变量,并以与“$this->content”相同的方式访问它?
谢谢。
【问题讨论】:
-
这对我不起作用。我需要在布局页面中使用变量,而不是模板/视图,我需要从控制器传递它。此方法允许我访问视图中的变量,但不能访问包含它的布局。
-
是的。我已经尝试了很多次,但我在布局中可以访问的唯一变量是 $this->content。执行 print_r 甚至只将 $this->content 显示为可访问变量。
-
您需要使用 ViewHelper。看看good book on getting started with ZF3
标签: php zend-framework3 zend-framework-mvc