相关疑难解决方法(0)

将鉴别器列映射到具有Doctrine 2的字段

在我的项目中,我有几个类表继承如下:

namespace MyProject\Model;

/**
 * @Entity
 * @InheritanceType("JOINED")
 * @DiscriminatorColumn(name="discr", type="string")
 * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
 */
class Person
{
    // ...
}

/** @Entity */
class Employee extends Person
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我有一个方法,它根据具有公共getter的字段将实体转换为数组.这里的问题是我丢失了数组中的继承信息,因为鉴别器值没有存储在字段中.

所以我尝试的是以下内容,希望教义会自动设置$disc:

class Person
{
    // can I automatically populate this field with 'person' or 'employee'?
    protected $discr;

    public function getDiscr() { return $this->discr; }
    public function setDiscr($disc) { $this->discr; }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在学说中使这项工作?或者我需要在实体到数组方法中读取类元数据?

doctrine-orm

9
推荐指数
1
解决办法
2万
查看次数

更改作为继承层次结构一部分的(Entity Framework)实体的类型

我有一个继承层次结构,其中包含一个基本的Employee实体和一些用于特定员工类型的后代实体.我需要能够将基础Employee实体转换为更具体的实体(例如TemporaryEmployee),并从更具体的类型转换回基本类型(例如,如果员工不再是"临时"的话,那么我希望该实例只是持久化为Employee.在DB中,这只是在表中为特定子类添加或删除一行的问题.(我每个类都使用表.)虽然我没有看到如何使用EF调用.

.net inheritance entity-framework

8
推荐指数
2
解决办法
4343
查看次数

Symfony /主义-多种用户类型

我正在创建一个网站,该网站应至少具有两种类型的用户,公司和客户,其中两种用户具有相同的登录表单和不同的注册表单,并且它们可以彼此发送消息...

正常情况下(不用考虑教义)我认为数据库应该看起来像这样:
用户(标识,电子邮件,密码,facebook_id,角色)
公司(标识,user_id,名称,城市,...)
客户(id,user_id,名称) ,sex ...)
消息(id,sender_id(用户ID),receiver_id(用户ID),消息...)
...

因此,现在我想知道使用DoctrineSymfony 4实施此要求的最佳和最简单的方法,实体的外观如何?

(注意:我没有使用FOSUserBundle

doctrine symfony

2
推荐指数
1
解决办法
371
查看次数