首页 > 解决方案 > 始终显示 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";
        }

    }
}

?>

标签: phpurl-routing

解决方案


推荐阅读