我正在使用zend框架2.我想在网站的根目录上放置几个页面。即
www.exampleSite.com/siteMap
我知道如何在子目录中获取页面。
即
www.exampleSite.com/support/helppage
'router' => array(
'routes' => array(
'supportsec' => array(
'type' => 'segment',
'options' => array(
'route' => '/support[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'support\Controller\supportController',
'action' => 'index',
),
),
), ), ),
我也知道如何路由到主页,即
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Members\Controller\HomeController',
'action' => 'index',
),
),
),
混淆是如何将其他页面放在网站的根目录中。
提前感谢您的帮助
我按照@exlord的建议将其放在我的模块中。
'my-static-page-1' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/my-static-page-1',
'defaults' => array(
'controller' => 'Members\Controller\HomeController',
'action' => 'my-static-page-1',
),
),
),
我现在可以拥有一个类似的页面:
www.exampleSite.com/examplepage
但路由只是将路由发送到
的索引'成员\控制器\ HomeController的'
然而,我需要将路由发送到examplepage的动作函数,即examplepageAction(){
}
我需要做什么?
答案 0 :(得分:1)
对于动态页面名称:
'my-static-pages' => array(
'type' => 'Zend\Mvc\Router\Http\Segment',
'options' => array(
'route' => '/[:my-page]',
'defaults' => array(
'controller' => 'Members\Controller\HomeController',
'action' => 'index',
),
),
),
注意这与归属路由相同,并且它使用索引操作,因此在索引操作中,您应该检查my-page
参数是否已设置并相应地执行操作。
或者您可以为每个页面定义静态路由:
'my-static-page-1' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/my-static-page-1',
'defaults' => array(
'controller' => 'Members\Controller\HomeController',
'action' => 'my-static-page-1',
),
),
),
更新:
public function indexAction()
{
$page = $this->params()->fromRoute('my-page', false);
if($page){
//return a view model according to the $page parameter
}
//return the original index action view model
}