首页 > 解决方案 > PHP fetch_class 与另一个文件中的类

问题描述

找不到我的问题的答案,所以就这样吧。

我有一个包含数据库连接信息的 config.php 文件:

<?php

declare(strict_types=1);

namespace App\Model;

// COMPOSER AUTOLOAD
require '../vendor/autoload.php';

// ROUTER FOR CONFIG PAGE
class Config
{  
// LOCAL DATABASE
 public $Database_Name = "power";
 public $Database_User = "root";
 public $Database_Password = "";   
}

我有一个带有 PDO 连接的 Database.php 文件:

<?php

declare(strict_types=1);

namespace App\Model;

use PDO;
use Exception;

include "../public/Config.php";

// CLASSE DATABASE
class Database
{
    private static $bdd = null;
    // MAIN DATABASE CONNECTION USED BY ALL METHODS

    public static function getBdd()
        {
        if (self::$bdd == null) {
            $config = new Config;
            try {
                self::$bdd = new PDO('mysql:host=localhost; dbname=' . $config->Database_Name, $config- >Database_User, $config->Database_Password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
            } catch (Exception $e) {
                echo "Cannot reach Database";
                die;
            }            
        }
        return self::$bdd;
    }

}

我有我想要实例化并用数据库中的数据填充的 getter 和 setter 类:

<?php

declare(strict_types=1);

namespace App\Model;

class Group
{

private $id;
private $group_admin;
private $creation_date;
private $group_name;
private $group_description;
private $group_status;

// CONSTRUCT
public function __construct($id, $group_admin, $creation_date, $title, $description, $status)
{
    $this->id = $id;
    $this->group_admin = $group_admin;
    $this->creation_date = $creation_date;
    $this->group_name = $title;
    $this->group_description = $description;
    $this->group_status = $status;
}

/**
 * Get the value of id
 */
public function getId()
{
    return $this->id;
}

/**
 * Set the value of id
 *
 * @return  self
 */
public function setId($id)
{
    $this->id = $id;

    return $this;
}

..........

最后我有我的模型和我想要执行的代码来获取数据并填充我的类:

<?php

namespace App\Model;

use PDO;
use App\Model\Group; // THIS SHOULD IMPORT THE GROUP CLASS

class GroupModel
{

    public function getMyGroups(): array
    {
        $bdd = Database::getBdd();
        $req = $bdd->prepare("SELECT * FROM groups ORDER BY creation_date DESC");
        $req->execute();
        // DEBUG
        // $req->debugDumpParams();
        // die;
        $Group = new Group(null, null, null, null, null, null);
        $result = $req->fetchall(PDO::FETCH_CLASS, 'Group');
        var_dump($result);
        die;
        return $result;
    }

...问题是,我的代码看不到这个类。

我在这里想念什么?

我目前收到错误:

Fatal error: Class 'Group' not found in D:\Dropbox\...\...\OCR-P5\src\Model\GroupModel.php on line 43

我也尝试使用 Group::class 或通过实例化类但没有,像这样:

$result = $req->fetchall(PDO::FETCH_CLASS, Group::class );

它也不起作用,也找不到类。

我还注意到我在两个地方使用了 PDO 表达式(1 - 在建立连接的文件中,2 - 在最后一个模型方法 fetchall() 中,不确定我是否应该这样做。

此致。

标签: php

解决方案


推荐阅读