PDO :: FETCH_CLASS无法正确获取扩展名吗?

时间:2018-03-14 09:40:34

标签: php mysql pdo

我试图将mysql数据库中的结果提取到具有表示每列属性的实体类中。这适用于第一级类,但如果我尝试将结果加载到此类的扩展中,我将获得双重属性。

<?php
class Entity
{
    private $id;
}

class EntityExtended extends Entity
{}


$pdo = new \PDO(/* instance thingy */);
$stmt = $pdo->prepare("SELECT id FROM entity");
$stmt->execute();

$entity = $stmt->fetchAll(\PDO::FETCH_CLASS, "Entity"); // Works
$entity = $stmt->fetchAll(\PDO::FETCH_CLASS, "EntityExtended"); // 2 sets of properties, public $id and private $id

在获取结果后,将第一个$实体转储到object(){private id},第二个结果生成object(){private $id, public $id}

有没有办法防止这种情况发生,或者是获取结果时制作自定义类加载器的唯一方法?

0 个答案:

没有答案