找不到类'App \ Http \ Database \ Model'

时间:2017-07-02 21:20:39

标签: php class autoload

我正在使用composer来自动加载类,但由于某些原因,我的Model

中找不到类Controller

Controller.php这样

namespace App\Http\Controllers;

use App\Http\Database\Model;

class Controller extends Model
{

    public function insert($query){

        $results = $this->model->query($query)->fetchAll();

        return $results;
    }
}

现在我在Model文件中的内容是与MySQL的简单PDO连接

Model.php

namespace app\Http\Database;

class Model extends Database
{
    public $model;

    function __construct()
    {
        try {
            $this->model = new \PDO("mysql:host=".Database::DB_HOST."; dbname=".Database::DB_DATABASE."", "".Database::DB_USER."", "".Database::DB_PASS."", array(\PDO::ATTR_PERSISTENT => false));
            $this->model->exec("SET CHARACTER SET utf8");
            return $this->model;

        } catch (PDOException $e) {
            echo "Cannot connect to the Database";
            die();
        }
    }
}

以下是我在index.php上的内容

的index.php

namespace App\Http\Controllers;

error_reporting(E_ALL);
ini_set("display_errors", 1);

require_once __DIR__ . '/../vendor/autoload.php';

$controller = new Controller();

$query = 'SELECT * FROM pages WHERE id = 1';

print_r($controller->insert($query));

autoload.php

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php',
    'App\\Http\\Controllers\\IndexController' => $baseDir . '/app/Http/Controllers/IndexController.php',
    'App\\Http\\Database\\Database' => $baseDir . '/app/Http/Database/Database.php',
    'app\\Http\\Database\\Model' => $baseDir . '/app/Http/Database/Model.php',
);

我在这里缺少什么?你能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:3)

请检查一下Model Class中的命名空间。请将其重命名为App\Http\Database

答案 1 :(得分:1)

或者,修复导入:

use app\Http\Database\Model;

但是,您可能希望修复已建议的命名空间。