Php Zend Framework 2-路由中的尾部斜杠
Zend模块中的Havin遵循以下结构 模块名称Php Zend Framework 2-路由中的尾部斜杠,php,zend-framework2,directory-structure,Php,Zend Framework2,Directory Structure,Zend模块中的Havin遵循以下结构 模块名称 试验 配置 src 看法 布局 试验 索引 index.phtml 登录 index.phtml 登记册 index.phtml Module.php 现在,当访问网站,例如登录文件时,它将如下所示 问题需要更改为,因为我在登录文件夹中添加了另一个文件夹索引,并将index.phtml文件如下所示 登录 索引 index.phtml 但这似乎不起作用。我应该在LoginController.php中进行更改
- 试验
- 配置
- src
- 看法
- 布局
- 试验
- 索引
- index.phtml
- 登录
- index.phtml
- 登记册
- index.phtml
- 索引
- Module.php
- 登录
- 索引
- index.phtml
- 索引
'router' => array(
'routes' => array(
'test' => array(
'type' => 'Literal',
'options' => array(
'route' => '/test',
'defaults' => array(
'__NAMESPACE__' =>'Test\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' =>
'/[:controller[/:action]]',
'constraints' => array(
'controller' =>
'[a-zA-Z][a-zA-Z0-9_-]*',
'action' =>
'[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(),
),
),
),
),
'login' => array(
'type' => 'Literal',
'options' => array(
'route' => '/login/', // PUT HERE WHATEVER YOU WANT
'defaults' => array( // AND MAP THAT URL TO CONTROLLER/ACTION
'__NAMESPACE__' =>'Test\Controller',
'controller' => 'Login',
'action' => 'index',
),
),
),
),
),
已修复刚刚添加
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' =>
'/[:controller[/:action]/]',
无论你的forlder结构是什么。您需要在配置文件module.config.php的“路由”部分进行更改 您只需输入“route”值,并在末尾加上斜杠,然后将其映射到控制器/操作
'routes' => array(
'login' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/login/', // PUT HERE WHATEVER YOU WANT
'defaults' => array( // AND MAP THAT URL TO CONTROLLER/ACTION
'controller' => 'Application\Controller\Login',
'action' => 'index',
),
),
),
)
就像@tasmaniski写的那样,您不需要对LoginController或其他任何东西进行更改,所有这些都取决于您的路由配置。你不是唯一一个想要在他的路线上“拖尾斜杠”的人 显然你需要把它放在[]之间
'route' => '/[:controller[/[:action[/]]]]',
希望你能解决这个问题
注意有些人建议对此使用重写规则,我认为这可能也值得一提。为什么您需要最后带有斜杠的路径,而不需要任何字符串?这就是项目的要求。我认为您已经给出了我所需要的,但当我在上面的module.confing.php部分中进行更改时,它不起作用。嗯。。尝试设置其他类似“route”=>“/dummy test/”的选项,并告诉您在浏览器中键入时出现了什么错误??您的IDEA很好,但所需的全部内容都在固定块中。不管怎样,谢谢。:)在那个固定的街区里,就是我说的。要在末尾添加路线段斜杠…请查看主帖子中我的固定块。@user3904245解决方案中的星号是否使控制器和操作成为可选的?我只是将它们添加以显示我添加的内容。我将消除误解。请注意,要使其工作,路由必须为
'type'=>'Segment'