0

我是 Zend Framework 2 编码的新手,我的布局和控制器有问题:

当我浏览vhost/时,它会呈现我的布局和 index.phtml 视图;所以一切都好!

但是,当我浏览vhost/cv时,它只呈现 cv.phtml 而没有我的布局......

这是我的代码

模块.config.php

return array(
    'controllers' => array(
        'invokables' => array(
            'Portfolio\Controller\Home' => 'Portfolio\Controller\HomeController',
        ),
    ),
    'router' => array(
        'routes' => array(
            'home' => array(
                'type'    => 'Literal',
                'options' => array(
                    'route'    => '/',
                    'defaults' => array(
                        'controller'    => 'Portfolio\Controller\Home',
                        'action'        => 'index',
                    ),
                ),
            ),
            'cv' => array(
                'type'    => 'Literal',
                'options' => array(
                    'route'    => '/cv',
                    'defaults' => array(
                        'controller'    => 'Portfolio\Controller\Home',
                        'action'        => 'cv',
                    ),
                ),
            ),
        ),
    ),
    'view_manager' => array(
        'display_not_found_reason' => true,
        'display_exceptions'       => true,
        'doctype'                  => 'HTML5',
        'not_found_template'       => 'error/404',
        'exception_template'       => 'error/index',
        'template_map' => array(
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
        ),
        'template_path_stack' => array(
            __DIR__ . '/../view',
        ),
    ),
);

家庭控制器.php

class HomeController extends AbstractActionController
{

    public function indexAction()
    {
        return new ViewModel();
    }

    public function cvAction()
    {
        return new ViewModel();
    }

}

我尝试使用 2 个控制器,使用子路由,但这些都不起作用......

有人可以告诉我我的代码有什么问题吗?

谢谢,麦克西姆

编辑 :

布局.phtml

<?php echo $this->doctype(); ?>

<html lang='fr'>
    <head>
        <meta charset='utf-8' />

        <link rel='stylesheet' type='text/css' href='<?php echo $this->basePath() . '/css/bootstrap.min.css' ?>' />
        <link rel='stylesheet/less' type='text/css' href='<?php echo $this->basePath() . '/css/base.less'; ?>' />
        <link rel='shortcut icon' href='<?php echo $this->basePath() . '/img/favicon.ico'; ?>' />

         <?php echo $this->headScript()
            ->prependFile($this->basePath() . '/js/ga.js')
            ->prependFile($this->basePath() . '/js/global.js')
            ->prependFile($this->basePath() . '/js/less-1.4.1.min.js')
            ->prependFile($this->basePath() . '/js/bootstrap.min.js')
            ->prependFile($this->basePath() . '/js/jquery-1.10.2.min.js')
        ; ?>

        <title>Test</title>
    </head>
    <body data-spy='scroll' data-target='#header' data-offset='200'>


        <?php require($this->basePath() . 'temp-old/views/shared/header.php') ?>

        <div id='content'>
            <?php echo $this->content; ?>

            <?php require($this->basePath() . 'temp-old/views/shared/footer.php') ?>
        </div>
    </body>
</html>

简历.phtml

<h1 class='heading-1 small-separator'>
    // My heading
</h1>
<section>
    // All my CV
</section>

索引.phtml

<!-- Presentation -->
<?php require('_presentation.php'); ?>
<!-- End Presentation -->

<!-- Prestations -->
<?php require('_prestations.php'); ?>
<!-- End Prestations -->

<!-- Contact -->
<?php require('_contact.php'); ?>
<!-- End Contact -->
4

1 回答 1

0

好的,我解决了我的问题,所以它真的是假的(是的,我是)错误:

我在 cv.phtml 中添加了一个链接:

<a href='$this.basePath()'>my link</a>

所以每次我尝试渲染布局+视图时,视图脚本都会抛出异常:“$this.basePath() is an unknown function”

我昨天:“Whaaaaat ?!那为什么?我用它到 index.phtml !”

今天的我:“真是一团糟!PHP 使用 -> 调用对象方法,而不是 '.'。

所以视图脚本 cv.phtml 没有任何错误,它可以与我的布局一样工作。

感谢大家的回复,感谢 Jurian Sluiman 确认我的 cv.phtml 中可能存在错误。

于 2013-09-10T08:58:37.903 回答