由于枚举功能是在 PHP8.1 中发布的,我想知道如何使用 PDO 从我的数据库中获取数据到具有 ENUM 属性的对象中。
我有以下枚举:
enum UserType{
case Master: 1;
case Admin: 2;
case Manager: 3;
}
我有以下课程:
class User{
private int $id;
private string $name;
private UserType $userType;
}
每次我尝试执行下面的代码时,我都会收到错误Cannot assign int to property User::$userType of type UserType
Database::getInstance()->fetchObject(sql: "SELECT id, name, userType FROM user WHERE id = 1", class_name: User::class);
我想知道是否有办法使上面的代码工作,或者在我的代码中实现新枚举功能的最佳方法是什么。
我的 fetchObject 代码:
public function fetchObject($sql, array $args = array(), string $class_name = "stdClass"): mixed
{
$sql = self::$instance->prepare($sql);
if(empty($args)){
$sql->execute();
} else{
$sql->execute($args);
}
$object = $sql->fetchObject($class_name);
$sql->closeCursor();
return $object;
}