@QNA-1976

Как оставить доступным GET параметр после обрезания?

обрезание :)
private static function removeQueryString($url)
    {
        if ($url) {
            $params = explode('&', $url, 2); // отрезали что-то вроде ?page=1
            if (strpos($params[0], '=') === false) {
                $params = explode('/', $params[0]); // отрезали до первого слеша
                return rtrim($params[0], '/'); // вернули чистое имя контроллера
            }
        }
        return '';
    }

правила
Router::add('^operation$', ['controller' => 'Operations', 'action' => 'operation']); // 'id' => 1 как-то сюда надо
Router::add('^$', ['controller' => 'Main']);
Router::add('^(?P<controller>[a-z-]+)/?(?P<id>\d+)?$');
Router::add('^(?P<controller>[a-z-]+)/?(?P<action>[a-z-]+)?/?(?P<id>\d+)?$');

Теперь если я перехожу по /operation/1, то всё нормально - отработало правило 1, но нет GET параметра id со значением 1
Array
(
    [controller] => Operations
    [action] => operation
    тут нужно получить [id] => 1 
)


то есть правило 3 естественно не отработало. Как оставить id? Добавить в правило? А как передать значение в правило?
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
ematveev
@ematveev
PHP разработчик / руководитель / писатель
может надо сразу разбить всю строку, чтобы не путаться?
function.parse-str.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы