声明新的枚举类型 php
declaring new enum type php
我是 PHP 的新手,我正在研究 Symfony 4 项目
我使用名为 role
的枚举 Class 创建了一个 Java 项目
public class Role {
public enum RoleEnum {
Admin, SuperAdmin, Etudiant, Entreprise } private Short id;
private RoleEnum name;
public Role(Short id, RoleEnum name) {
this.id = id;
this.name = name ;
}
在我的用户中我是这样的
public abstract class User {
private Long id;
private String nom;
private String email;
private String mdp;
private String tel;
private String photo;
private Role role;
private Boolean etatCompte;
并且我在 MySQL
中的两个 table 之间建立了关系
我也在 Java 中创建了这个方法
public Role getRoleByName(RoleEnum input) {
Statement stm;
try {
stm = cnx.createStatement();
String query = "SELECT id from role Where name='" +input+"'";
ResultSet rst = stm.executeQuery(query);
while (rst.next()) {
Short id = rst.getShort("id");
return new Role(id, input);
}
} catch (SQLException ex) {
Logger.getLogger(ServiceEtudiant.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
当我向 table 添加值时,例如将“admin”添加到角色,我是这样做的
Role role = s.getRoleByName(Role.RoleEnum.Admin);
任何人都可以帮助我或指导如何在我的 symfony 项目中以同样的方式做到这一点吗?
在 PHP 中,您可以创建关联数组,例如:
[
"FIRST" => 1,
"SECOND" => 2,
"THIRD" => 3,
"FOURTH" => 4,
]
对此的改进是将键也创建为变量:
$FIRST = "FIRST";
$SECOND = "SECOND";
$THIRD = "THIRD";
$FOURTH = "FOURTH";
$myenum = [
$FIRST = 1,
$SECOND = 2,
$THIRD = 3,
$FOURTH = 4,
];
您可以创建枚举生成器
class MyEnum {
public function __construct($keysValues) {
foreach ($keysValues as $key => value) $this->{$key} => $value;
$this->values = $values;
}
}
实例化:
$numbers = new MyEnum(
[
"FIRST" => 1,
"SECOND" => 2,
"THIRD" => 3,
"FOURTH" => 4,
]);
我是 PHP 的新手,我正在研究 Symfony 4 项目
我使用名为 role
的枚举 Class 创建了一个 Java 项目public class Role {
public enum RoleEnum {
Admin, SuperAdmin, Etudiant, Entreprise } private Short id;
private RoleEnum name;
public Role(Short id, RoleEnum name) {
this.id = id;
this.name = name ;
}
在我的用户中我是这样的
public abstract class User {
private Long id;
private String nom;
private String email;
private String mdp;
private String tel;
private String photo;
private Role role;
private Boolean etatCompte;
并且我在 MySQL
中的两个 table 之间建立了关系我也在 Java 中创建了这个方法
public Role getRoleByName(RoleEnum input) {
Statement stm;
try {
stm = cnx.createStatement();
String query = "SELECT id from role Where name='" +input+"'";
ResultSet rst = stm.executeQuery(query);
while (rst.next()) {
Short id = rst.getShort("id");
return new Role(id, input);
}
} catch (SQLException ex) {
Logger.getLogger(ServiceEtudiant.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
当我向 table 添加值时,例如将“admin”添加到角色,我是这样做的
Role role = s.getRoleByName(Role.RoleEnum.Admin);
任何人都可以帮助我或指导如何在我的 symfony 项目中以同样的方式做到这一点吗?
在 PHP 中,您可以创建关联数组,例如:
[
"FIRST" => 1,
"SECOND" => 2,
"THIRD" => 3,
"FOURTH" => 4,
]
对此的改进是将键也创建为变量:
$FIRST = "FIRST";
$SECOND = "SECOND";
$THIRD = "THIRD";
$FOURTH = "FOURTH";
$myenum = [
$FIRST = 1,
$SECOND = 2,
$THIRD = 3,
$FOURTH = 4,
];
您可以创建枚举生成器
class MyEnum {
public function __construct($keysValues) {
foreach ($keysValues as $key => value) $this->{$key} => $value;
$this->values = $values;
}
}
实例化:
$numbers = new MyEnum(
[
"FIRST" => 1,
"SECOND" => 2,
"THIRD" => 3,
"FOURTH" => 4,
]);