3

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

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

我创建了一个 About 控制器,与它关联的 phtml,但是当我尝试转到 /about 时,我收到一个 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;
}
}

我希望它会帮助一些人。

4

1 回答 1

2

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

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

同时,我将查找我最初了解这一点的文档。

编辑:事实证明,您可能需要的是自定义路线,他们的文档在这里

于 2012-10-16T16:46:26.810 回答