我通过Composer将zfcUser
模块添加到我的项目中,并在模块ZfcUserOverride
中覆盖了它。我想要尾随斜线工作,所以我在覆盖模块中添加了路由。
zfcUserOverride
档案module.config.php
内容如下:
<?php
$config = array(
'view_manager' => array(
'template_path_stack' => array(
'zfcuser' => __DIR__ . '/../view',
),
),
'controllers' => array(
'invokables' => array(
'zfcuser' => 'ZfcUserOverride\Controller\UserController',
),
)
);
$config['router']['routes']['zfcuser']['child_routes']['trailing_slash'] = array(
'type' => 'Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'zfcuser',
'action' => 'index',
),
),
);
return $config;
我添加了新的路径,一切正常。
但如果我想删除路线怎么办?这该怎么做?我需要一些想法:
$config['router']['routes']['zfcuser']['child_routes']['login'] = null;
请帮助。谢谢。
答案 0 :(得分:2)
在zfcUserOverride
中,您需要覆盖路线配置,而不是添加新路线。
在定义路线时,可以使用相同数组键轻松完成此操作。
例如;我是否应该修改login
路由以允许使用额外的斜杠:
// zfcUserOverride/config/module.config.php
'router' => array(
'routes' => array(
'zfcuser' => array(
'child_routes' => array(
'login' => array(
'type' => 'Segment',
'options' => array(
'route' => '/login[/]',
),
),
),
),
),
);
内部ZF2将使用array_replace_recursive()
将所有模块配置合并/合并为一个完整的阵列。因此,匹配的配置键将被后面加载的模块替换。
因此,您还需要确保在application.config.php
array(
'modules' => array(
//...
'ZfcUser',
'ZfcUserOverride', // Loads after
// ...
),
);
答案 1 :(得分:-1)
Here答案。
@Sharikov Vladislav,我想对你说点什么。 在this question我回答了你的问题,你选择了一个正确的答案,只需要在10小时后用我的内容更新他的答案。 我不想开始一场火焰战争,我要求的只是对谁用它的时间来帮助你。而且我认为你必须在发布之前使用搜索引擎,你在为开发过程的每一步提出一个问题,很明显你没有花费精力去自己搜索解决方案。
只是说.. ..