обрезание :)
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? Добавить в правило? А как передать значение в правило?