繁体   English   中英

如何使用Doctrine和Symfony2 Framework记录与关系的每个实体数据?

[英]Howto log each entity data with relations with Doctrine and Symfony2 Framework?

我将开始一个新的PHP项目,它将在Symfony Framework上使用Doctrine ORM。

我现在正在考虑实体和关系的结构。 听起来完全荒谬,与ORM逻辑矛盾吗?

我以前没有使用过Symfony和Doctrine。

会有如此多的实体,每个实体都有许多关系。

对于前。 假设我有3个实体。

-用户

-邮政

-评论

项目负责人要求我提供如下结构。

log_entities

   Id           Type        CreatedAt    Status      title

   1           Post       Y-m-d H:i:s     1          Post 1...
   2           Comment    Y-m-d H:i:s     0          comment 1...
   3           Comment    Y-m-d H:i:s     1          comment 2...
   4           User       Y-m-d H:i:s     1          User X...
   ...         ...        ...             ...        ...

rel_entities

from_log_id   fromContentType      toContentType    to_log_id
     2              Comment              Post           1
     3              Comment              Post           1
     1              Post                 User           4

对象

User
   -id
   -name
   -log_id (fk)
   ...

Comment
   -id
   -connet
   -log_id (fk)
   ...

Post
   -id
   -content
   -log_id (fk)
   ...

-每个对象在实体表上都有一个日志数据。

-这就是说,我们应该能够轻松地通过表获得对象的所有关系。

如何使用Doctrine完成类似的方案?

谢谢。

首先,您不应将PHP对象命名为复数形式,而应使用单数形式,因为它们表示组中的单个实体。 然后,要添加到每个实体的entityId字段实际上就没有意义,因为已经有一个id字段可以准确地表示该字段。

对于我所看到的,您需要定义实体之间的关系。 您可以使用OneToOneOneToManyManyToOneManyToMany 使用哪一个取决于应用程序规范,但是一个从您的代码派生的示例:

User
  - id
  - name
  - comments (OneToMany -> Comment)
  - posts (OneToMany -> Post)

Comment
  - id
  - connet
  - user (ManyToOne -> User)

Post
  - id
  - content
  - user (ManyToOne -> User)

等等。 我完全不了解您的entityId ,能否更具体些?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM