Моя схема базы данных;Doctrine2 Entity relationship with Where Условие
LIKE PAGE ARTICLE
id id id
userid name text
itemid
itemtype
и мои сущности;
Page.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")
Возможно ли это?
Если я использую этот путь, поле (article_id или page_id) будет пустым. Ненужное поле сложен. – user2993220
Это небольшая проблема, у вас будет больше проблем, если вы поместите идентификаторы. Я использую этот трюк для пользователя, изображения, альбома, комментария, wallpost ... Нет разницы в скорости, если это 500 000 строк или 10. – Zeljko