gpt4 book ai didi

mysql - Doctrine2 实体与Where条件的关系

转载 作者:行者123 更新时间:2023-11-30 00:53:25 24 4
gpt4 key购买 nike

我的数据库架构;

LIKE      PAGE    ARTICLE    
id id id
userid name text
itemid
itemtype

和我的实体;

页面.php;

/**
* @ORM\OneToMany(targetEntity="Like", mappedBy="page")
*/
protected $likes;

文章.php;

/**
* @ORM\OneToMany(targetEntity="Like", mappedBy="article")
*/
protected $likes;

Like.php;

/**
* @ORM\ManyToOne(targetEntity="Page", inversedBy="likes")
* @ORM\JoinColumn(name="itemid", referencedColumnName="id")
*/
protected $page;

/**
* @ORM\ManyToOne(targetEntity="Article", inversedBy="likes")
* @ORM\JoinColumn(name="itemid", referencedColumnName="id")
*/
protected $article;

我的问题;如何添加WHERE条件?

像这样;

@ORM\JoinColumn(name="itemid", referencedColumnName="id", condition="itemtype=1")

可能吗?

最佳答案

即使有可能,你也会做错。 Like 表中最好有 article_idpage_id,而不是您的 item_iditemtype 标识符。

示例:如果您按照我上面所说的操作,您将能够在数据库级别设置级联删除@ORM\JoinColumn(...., onDelete="CASCADE")。这意味着如果文章被删除,所有喜欢的内容也将通过外键自动删除。

如果您按照自己的方式进行操作,那么您将必须手动处理。最好把它留给数据库;代码越少,出错的可能性就越小。

关于mysql - Doctrine2 实体与Where条件的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20782702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com