Я добавил модуль zfcUser
в свой проект через Composer и переопределил его в модуле ZfcUserOverride
. Мне нужна работа с косой чертой, поэтому я добавил маршрут в переопределенный модуль.
Файл zfcUserOverride
file 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;
Помоги пожалуйста. Спасибо.
Вот ответ.
@Шариков Владислав, я хочу тебе кое-что сказать. В этом вопросе я ответил на ваш вопрос, и вы выбрали правильный ответ кому-то, который просто обновит свой ответ моим контентом через 10 часов. Я не хочу начинать пламенную войну, я просто хочу быть верным, кто использовал свое время, чтобы помочь вам.
Кроме того, я думаю, что вы должны использовать поисковые системы до публикации здесь, вы задаете вопрос на каждый шаг своего процесса разработки, и ясно, что вы не прилагаете никаких усилий для поиска решения самостоятельно.
Просто говорю..
В zfcUserOverride
вам необходимо переопределить конфигурацию маршрута, а не добавлять новую.
Это можно легко сделать, используя один и тот же ключ массива при определении маршрутов.
Например; если я хочу изменить маршрут login
в 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 // ... ), );