Я пытаюсь использовать AltoRouter, но я пытаюсь следовать его документации, и моя проблема в том, что $_GET
всегда быть пустым.
Я использую Apache, и мой .htaccess похож на следующее:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
А теперь это мой файл, чтобы взять $_GET
и сделай роутер:
$router->map('GET', '/', 'PageController@getShowHomePage', 'home');
$match = $router->match();
list($controller, $method) = explode("@", $match['target']);
if(is_callable(array($controller, $method))) {
$object = new $controller();
call_user_func_array(array($object, $method), array($match['params']));
} else {
echo "Cannot find $controller -> $method";
exit();
}
Но я вижу, что это не работает, потому что когда я получаю $ _GET, он всегда пуст, я использовал print_r($_GET)
видеть внутри, чтобы $_GET
, но мне был возвращен массив пустой.
Я пробовал со следующими URL, но результат был тем же:
http://localhost/mvc/
http://localhost/mvc/page
http://localhost/mvc/controller
http://localhost/mvc/produto/cadastrar
Это потому, что у вас нет параметров запроса (GET) в этих URL.
получить параметр будет, если вы использовали, скажем:
http://localhost/mvc?param=1
Вы можете получить больше информации от $_SERVER
если вам нужна помощь в отладке, попробуйте такой инструмент, как Kint
Других решений пока нет …