Zend 2从控制器访问不同的URL

时间:2013-12-29 23:40:36

标签: php zend-framework2

有没有办法访问与控制器名称不同的网址?

对我的现实生活中的例子说,我希望以男性为类别来访问此网址http://www.example.com/men。我的控制器将是CategoryController,它将显示来自数据库的信息,该信息适用于所选的任何类别。

我需要它的原因是因为我需要支持多个站点,所以我不能为每个类别配备一个控制器。有没有办法做到这一点?我对2框架相当新,但对1.12有很好的了解。感谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以通过路由配置来解决您的任务。模块module.config.php文件:

return array(
    'router' => array(
        'routes' => array(
            '<ROUTE_NAME>' => array(
                'type' => 'Zend\Mvc\Router\Http\Segment',
                'options' => array(
                    'route' => '/:category',
                    'constraints' => array(
                        'category' => '<CATEGORY_PATTERN>', // usually [a-zA-Z0-9-_]+
                    ),
                    'defaults' => array(
                        '__NAMESPACE__' => '<CategoryController Namespace>',
                        'controller' => 'Category',
                        'action' => '<Controller method without "action" postfix>',
                    ),
                ),
            ),
        ),
    ),
);

通过以下方式访问的内部控制器类别:

$category = $this->params()->fromRoute('category');