0

我是新Zend2。我如何将一些 var 或数组传递给我的 navigation.phtml 的问题,我的布局成功了。我想从我的 NavigationController 控制它

我错过了什么?!

导航控制器:

namespace Front\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController {

function __construct() {
        return $this->layout()->myVariable = 'navigation Test';
    }
}

导航.phtml:

<?php print_r($this->layout()->myVariable); ?>

模块配置

'controllers' => array(
    'invokables' => array(
        'Front\Controller\Index' => 'Front\Controller\IndexController',
        'Front\Controller\Pages' => 'Front\Controller\PagesController',
        'Front\Controller\Navigation' => 'Front\Controller\NavigationController'
    ),
),


    'template_map' => array(
        'layout/layout'     => __DIR__ . '/../view/layout/layout.phtml',
        'meta'            => __DIR__ . '/../view/layout/meta.phtml',
        'navigation'            => __DIR__ . '/../view/layout/navigation.phtml',
4

2 回答 2

0

首先,不要在构造函数中返回任何内容。接下来,假设您有到 navigation.phtml 的默认路由,您在控制器中定义一个函数

public function indexAction {

    $foo = 'hello';
    $bar = 'mum';

    return new ViewModel(array(
    'variable1'    => $foo,
    'variable2'    => $bar));
}

然后你可以使用 variable1 和 variable2 作为 javascript 变量,如下所示:

var var1 =<?php echo $this->variable1; ?>;
var var2 =<?php echo $this->variable2; ?>;

或者您可以直接在 html 中使用这些值:

<label><?php echo $this->variable2; ?></label>
于 2013-08-27T01:49:15.037 回答
0

您使用控制器有些错误。由于我不愿意教授基础知识,请参考官方手册并查看表格和操作部分以及Zend\View快速入门

总而言之,我能给你的最大建议是:如果你不愿意自己阅读文档,就不要使用框架......

于 2013-08-24T07:52:02.240 回答