gpt4 book ai didi

php - 没有为此 uri 定义的路由

转载 作者:行者123 更新时间:2023-12-04 13:26:41 26 4
gpt4 key购买 nike

我正在学习 laracast(https://laracasts.com/series/php-for-beginners) 中的教程,并且我在该系列的这一集(16 - 制作路由器)中。其中展示了如何构建基本路由器。据我所知,我已按照视频中的说明进行了所有操作,但我在构建路由器时遇到了问题。我收到此错误消息:

Fatal error: Uncaught exception 'Exception' with message 'No routes define for this uri' in C:\wamp64\www\todo\core\Router.php on line 23 Exception: No routes define for this uri in C:\wamp64\www\todo\core\Router.php on line 23

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

路由.php:

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

路由器.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");

}
}

索引.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

最佳答案

我在这门课上遇到了同样的问题。我相信你已经有了 htcaccess 文件以及里面的这些代码

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

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

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

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

问候

关于php - 没有为此 uri 定义的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42863721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com