Хотя это может не относиться к вашей ситуации, у меня была похожая проблема, которую я исправил следующим образом.
Мы сохраняем URL для дерева, например, набор страниц, путь которого обновляется при сохранении,Пример:
Name | Path
Home | /
- Support | /support
-- Legal | /support/legal
-- Privacy | /support/privacy
- About | /about
-- Who We Are | /about/who-we-are
Затем мы передаем путь в качестве аргумента нашему контроллеру.Обычные методы Router :: * будут кодировать косые черты в них.Вместо этого мы делаем следующее:
$redirect = explode('/', $path);
$redirect['controller'] = 'my_controller';
$redirect['action'] = 'my_action';
$this->redirect($redirect);
Этот тортик перекодирует косые черты для меня.Затем вы можете собрать их в контроллере
$path = implode('/', $this->request->params['pass']);