Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend Framework 2-如何从库中包含部分_Php_Partial Views_Zend Framework2_Zend View_View Helpers - Fatal编程技术网

Php Zend Framework 2-如何从库中包含部分

Php Zend Framework 2-如何从库中包含部分,php,partial-views,zend-framework2,zend-view,view-helpers,Php,Partial Views,Zend Framework2,Zend View,View Helpers,我写了一个部分,我想在几个模块中使用。我想最好的办法是把它放到我的自定义库中 但不幸的是,我无法找到一种方法来包含此部分,而不使用非常丑陋的路径,如: echo $this->partial('/../../../../vendor/myvendor/library/MyVendor/View/Views/FormPartial.phtml' , array(...)); 如何从我的视图链接到我的供应商目录 问题是解析程序无法解析您提供的视图模板的路径。我通常会在module.confi

我写了一个部分,我想在几个模块中使用。我想最好的办法是把它放到我的自定义库中

但不幸的是,我无法找到一种方法来包含此部分,而不使用非常丑陋的路径,如:

echo $this->partial('/../../../../vendor/myvendor/library/MyVendor/View/Views/FormPartial.phtml'
, array(...));

如何从我的视图链接到我的供应商目录

问题是解析程序无法解析您提供的视图模板的路径。我通常会在module.config.php中的template\u map条目中为所有可访问的部分添加一个配置条目

比如说 我有这样的页眉和页脚部分:my view/layout/header.phtml和view/layout/footer.phtml

下面是我的配置

'template_map' => array(
    'layout/layout'         => __DIR__ . '/../view/layout/layout.phtml',
    'header'                => __DIR__ . '/../view/layout/header.phtml',
    'footer'                => __DIR__ . '/../view/layout/footer.phtml',
    'error/404'             => __DIR__ . '/../view/error/404.phtml',
    'error/index'           => __DIR__ . '/../view/error/index.phtml',
),
在我的布局视图脚本中,我简单地

<?php echo $this->partial('header'); ?>


另一种方法是,如果您的partials在/module/controller/action格式下,您也可以这样做

<?php echo $this->partial('/module/controller/action'); ?>


您应该将视图脚本放在模块控制器文件夹的视图文件夹中

是否尝试了addBasePath()?我想你可以用它来添加一个路径,在那里你的视图脚本将被寻找。。。因此,您应该能够再次使用视图,而不需要这么长的路径,并再次感谢这个详细的答案。但是有没有办法将部分放在一个中心位置,几个模块可以访问它?在zf2中,配置中或任何模块中定义的任何部分在上述定义的任何模块中都同样可以访问。如果你想把它放在一个中央位置,最好的地方是你的应用程序视图文件夹。将所有的partialfoldername/yourpartial.phtml放在partialfoldername/yourpartial下,然后您就可以访问方法2定义为“/application/partialfoldername/yourpartial”的partialfoldername。注意:选择partialfoldername,使其与您定义的任何控制器都不匹配
<?php echo $this->partial('/module/controller/action'); ?>