Yoh*_*ann 1 many-to-many symfony doctrine-orm
我以前操纵数据库,我想在Symfony2/Doctrine2下创建一个带有属性createdAt的ManyToMany模型,用于关于喜欢的帖子的模型.
这是我目前的代码
用户实体:
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Post", inversedBy="posts", cascade={"persist"})
* @ORM\JoinTable(name="favorite")
*/
private $favorites;
Run Code Online (Sandbox Code Playgroud)
和一个邮政实体:
/**
* @ORM\ManyToMany(targetEntity="App\Entity\User", mappedBy="favorites")
*/
private $users;
Run Code Online (Sandbox Code Playgroud)
我有一个创建的表最喜欢的(post_id,user_id).
如何创建表格收藏夹(post_id,user_id,createdAt)?
谢谢
Ren*_*ené 13
您可以通过创建一对多关系并在中间创建自己的实体来实现此目的
在用户实体中:
/**
* @ORM\OneToMany(targetEntity="App\Entity\UserFavorites", mappedBy="user", cascade={"persist"})
*/
private $userFavorites;
Run Code Online (Sandbox Code Playgroud)
为Post实体做同样的事情:
/**
* @ORM\OneToMany(targetEntity="App\Entity\UserFavorites", mappedBy="post", cascade={"persist"})
*/
private $userFavorites;
Run Code Online (Sandbox Code Playgroud)
创建一个UserFavorites实体来连接2:
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="userFavorites")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Post", inversedBy="userFavorites")
* @ORM\JoinColumn(name="post_id", referencedColumnName="id")
*/
private $post;
/**
* @var datetime $created
*
* @ORM\Column(name="created", type="datetime")
*/
private $created;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3488 次 |
| 最近记录: |