PHP自定义路由器错误404

时间:2018-07-22 15:41:52

标签: php routing routes url-routing router

我正在尝试用PHP创建基本路由器,但只有索引路由有效(“”)。

当我尝试其他路线(例如“登录”)时,出现404错误。

我的路由器:

class Router {

 private $routes = [];

 public function __construct($routes)
 {
     $this->routes = $routes;       
 }

 public function directTo($uri)
 {
     if (array_key_exists($uri, $this->routes)) {

        return $this->routes[$uri];

     } 

     throw new \Exception("Route not found", 1);

 }

}

路由文件:

return [

  '' => 'controllers/IndexController.php',

  'login' => 'controllers/LoginController.php',

  'register' => 'controllers/RegisterController.php',

  'logout' => 'controllers/LogoutController.php',

];

应用程序入口点(index.php):

require_once "vendor/autoload.php";

use App\Controllers\Router;

$routes = require_once "routes.php";

$uri = trim($_SERVER["REQUEST_URI"],'/');

$router = new Router($routes);

require $router->directTo($uri);

我认为问题可能与index.php中的$ uri变量有关,但我无法查明问题所在。

当我像这样对$ uri进行硬编码时:

require $router->directTo("login");

它就像一种魅力。

0 个答案:

没有答案