我正在尝试使用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;
}
}
我希望它会帮助一些人。
答案 0 :(得分:2)
据我所知,这样的事情应该有效:
$route = new Zend_Controller_Router_Route_Static(
'about',
array('controller' => 'about')
);
$router->addRoute('about', $route);
与此同时,我会去寻找我最初了解的文档。
编辑:事实证明,您可能需要的是自定义路线,其文档已超过here。