php - 始终显示 404 php 基本路由
问题描述
我尝试使用 MVC 创建基本路由,但是当您查看任何页面时,它会显示正确的内容,这意味着它会拉入视图。但总是显示 404。正确的内容将根据 URL 显示,例如主页,还有 404 和其他错误。即使通过 Route 也是正确的。我没有包括视图和控制器,因为此时控制器只是将视图(头部、主体和内容)组合在一起。看起来它的 Models/Route.php 就是问题所在。知道我在这里做错了什么吗?
-index.php
<?php
require_once('Routes.php');
function __autoload($class_name) {
if (file_exists('Controllers/'.$class_name.'.php'))
{
require_once ('Controllers/'.$class_name.'.php');
}
else if (file_exists('Models/'.$class_name.'.php'))
{
require_once ('Models/'.$class_name.'.php');
}
}?>
路由.php
<?php
Route::set('index.php', function()
{
Index::CreateView('Index');
});
Route::set('home', function()
{
Index::CreateView('Index');
});
?>
模型/Route.php
<?php
class Route
{
public static $validRoutes = array();
public static function set($route, $function)
{
self::$validRoutes[] = $route;
if ($_GET['url'] == $route)
{
$function->__invoke();
}elseif(!in_array($_GET['url'], Route::$validRoutes)){
echo "404";
}else{
echo "something went wrong";
}
}
}
?>
解决方案
推荐阅读
- angular - Add plus sign "+" before input value in Angular2
- php - 字符编码问题 PHP & MySQLi
- firebase - 未获得从 Playstore 下载应用程序的用户的 Firebase 动态链接
- jenkins-x - 为什么 jx install 运行 chrome 来获取管理员令牌?
- c++ - 调用函数时,C++ 中的 ptr** 和 ptr*& 之间有区别还是首选?
- c# - C# 使用 MySQL 的多种形式
- angularjs - 由 AngularJS 路由器解释的百分比“%”符号
- java - 是否可以通过java中的反射更改默认初始字段值?
- elasticsearch - 休眠查询不搜索超过 2 个字符的某些字符串并且不进行多字搜索
- xaml - 报告和发票 UWP 应用程序