-2

2 つのクラスがあり、どちらも異なる名前空間にあります。1 つの名前空間からオブジェクトを作成しようとすると、エラーが発生します

Fatal error:  Class 'Classes\DrDatabase' not found in C:\Path\to\workspace\AplicationName\app\models\Users.model.php on line XY

PHP名前空間で理解できなかったことがありますか?

2 つのファイル:

FILE 1
namespace Classes;

class DrDatabase extends MssqlDatabase {

public function __construct() {
    parent::createLog(__CLASS__);
    parent::connect('ipaddress', 'database', 'user', 'password');
    if ($this->link) {
        $this->log->info('Connected');
    }
}
}

FILE 2
namespace Model;

use \Classes\DrDatabase;

class UsersModel implements MasterModel {
    private function get($id, $onlyEnabled) {
        $db = new DrDatabase();
        $getOnlyEnabled = 1;
        if (!$onlyEnabled)
            $getOnlyEnabled = 0;
        $SQL = "SELECT * FROM table";
        $resultSet = $db->query($SQL);
        $result = array();
        while ($row = mssql_fetch_assoc($resultSet)) {
            $result[] = self::createUserObject($row['col1'],$row['col2']);
        }
    }
}
4

1 に答える 1

3

適切に設定されたオートローダを使用していない限り、正しく機能させるために「FILE 1」を含める必要があります。

それ以外の場合 -クラスの場所をどのようにUserModel知ることができますか?DrDatabase

于 2012-10-24T14:54:43.087 に答える