有没有办法访问与控制器名称不同的网址?
对我的现实生活中的例子说,我希望以男性为类别来访问此网址http://www.example.com/men。我的控制器将是CategoryController,它将显示来自数据库的信息,该信息适用于所选的任何类别。
我需要它的原因是因为我需要支持多个站点,所以我不能为每个类别配备一个控制器。有没有办法做到这一点?我对2框架相当新,但对1.12有很好的了解。感谢。
答案 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');