无法使用Zend Framework创建静态页面(关于我们)

时间:2012-10-16 16:39:20

标签: zend-framework frameworks static

我正在尝试使用Zend Framework建立一个网站,因为我听说它非常好,我想尝试框架,但我有一个简单的问题让我发疯。

我想制作一个包含静态内容的简单mywebsite.com/about页面,因为除了显示html之外无需做任何其他事情。

我制作了一个关于控制器,与之相关的phtml,但是当我尝试去/关于时,我得到404错误,接着是:

The requested controller could not be mapped to an existing controller class.

Controller:
not-found(resolves to invalid controller class or alias: not-found)

所以我检查了我的路由文件:

'router' => array(
    'routes' => array(
        'about' => array(
            'type' => 'segment',
            'options' => array(
                'route' => '/about',
            ),
            'defaults' => array(
                'controller' => 'About\Controller\About',
                'action' => 'index',
            ),
        ),
    ),
),

所以,如果我没错,那应该调用我制作的About控制器,但无法找到问题。

如果有人能帮助我理解我错过了什么或者我没有用Zend得到什么,我会很高兴。

编辑:Zend的版本是2.x如果改变了什么

# 编辑2:在James Kent的帮助下,我找到了解决方案

我的路由文件似乎有误,这是新的:

    'router' => array(
    'routes' => array(
        'about' => array(
            'type'    => 'Literal',
            'options' => array(
                'route'    => '/about',
                'defaults' => array(
                    '__NAMESPACE__' => 'About\Controller',
                    'controller'    => 'About',
                    'action'        => 'index',
                ),
            ),
        ),
    ),
),

我还必须更改我的About控制器的indexAction:

class AboutController extends AbstractActionController
{
public function nolayoutAction() {
    $viewModel = new ViewModel();
    //$viewModel->setTerminal(true); Uncomment to disable the layout
    return $viewModel;
}

public function indexAction()
{
    $viewModel = $this->nolayoutAction();
    return $viewModel;
}
}

我希望它会帮助一些人。

1 个答案:

答案 0 :(得分:2)

据我所知,这样的事情应该有效:

$route = new Zend_Controller_Router_Route_Static(
    'about',
    array('controller' => 'about')
);
$router->addRoute('about', $route);

与此同时,我会去寻找我最初了解的文档。

编辑:事实证明,您可能需要的是自定义路线,其文档已超过here