此uri没有定义路由

时间:2017-03-17 17:25:23

标签: php

我正在从laracast(https://laracasts.com/series/php-for-beginners)开始学习本教程,我正在本系列中的这一集(16 - Make a Router)。其中显示了如何构建基本路由器。我已经完成了我的知识,如视频中所示,但我遇到了构建路由器的问题。 我收到此错误消息:

  

致命错误:未捕获的异常'异常',消息为“无路由”   在第23行的C:\ wamp64 \ www \ todo \ core \ Router.php中定义此uri'   例外:没有路由为此uri定义   第23行的C:\ wamp64 \ www \ todo \ core \ Router.php

如何通过此错误?这是我的代码

routes.php文件:

$router->define([
    '' => 'controllers/index.php',
    'about' => 'controllers/about.php',
    'contact' => 'controllers/contact.php'
]);

Router.php

class Router
{

    protected $routes = [];


    // this function defines our routes
    public function define($routes)
    {
        # code...
        $this->routes = $routes;
    }

    public function direct($uri){
        if (array_key_exists($uri, $this->routes)) {
            # code...
            return $this->routes[$uri]; 
        }
        throw new Exception("No routes define for this uri");

    }
}

Index.php

$database = require 'core/bootstrap.php';

$router = new Router;

require 'routes.php';

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

require $router->direct($uri);

如果您需要更多信息,请通知我。

更新 这是我在wampserver www文件夹中的网站结构:

enter image description here

1 个答案:

答案 0 :(得分:3)

我在这门课程中遇到了同样的问题。我觉得你已经有了htcaccess文件

中的这些代码
var express = require('express');
var app = express();
app.use('/', express.static('./'));
app.listen(80);

无论如何,路线应该是这样的

RewriteEngine On
RewriteBase /todo/
RewriteRule ^.*$ index.php [END]

或者您可以从cmd连接到PHP内置Web服务器,它也将为您解决路由问题

此致