[英]Howto log each entity data with relations with Doctrine and Symfony2 Framework?
我将开始一个新的PHP项目,它将在Symfony Framework上使用Doctrine ORM。
我现在正在考虑实体和关系的结构。 听起来完全荒谬,与ORM逻辑矛盾吗?
我以前没有使用过Symfony和Doctrine。
会有如此多的实体,每个实体都有许多关系。
对于前。 假设我有3个实体。
-用户
-邮政
-评论
项目负责人要求我提供如下结构。
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...
... ... ... ... ...
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
字段可以准确地表示该字段。
对于我所看到的,您需要定义实体之间的关系。 您可以使用OneToOne
, OneToMany
, ManyToOne
和ManyToMany
。 使用哪一个取决于应用程序规范,但是一个从您的代码派生的示例:
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.