2015-11-18 2 views
-1

как установить более одного условия в учении ManyToMany ..как установить более одного условия в Doctrine ManyToMany

модель

/** 
* @ORM\ManyToMany(targetEntity="users",inversedBy="friends",cascade={"ALL"}) 
* @ORM\JoinTable(name="friends", 
*  joinColumns={@ORM\JoinColumn(name="friend_id", referencedColumnName="id")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")} 
*  ) 
*/ 
private $groupsa; 

public function getusersre() { 
    return $this->groupsa; 
} 

выход

SELECT 
    t0.id AS id_1, 
    t0.email AS email_2, 
    t0.username AS username_3, 
    t0.password AS password_4, 
    t0.first_name AS first_name_5, 
    t0.last_name AS last_name_6, 
    t0.location AS location_7, 
    t0.remember_token AS remember_token_8, 
    t0.created_at AS created_at_9, 
    t0.updated_at AS updated_at_10 
FROM 
    users t0 
    INNER JOIN friends ON t0.id = friends.user_id 
WHERE 
    friends.friend_id = ? 

я хочу, чтобы это было так

WHERE 
    friends.friend_id = ? 
or friends.xxxx_id = ? 

ожидания для réponse, спасибо за все ....

+1

[класс пользовательского хранилища] (http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes), затем [построитель запросов] (HTTP: // доктрина-ОРМ .readthedocs.org/projects/doctrine-orm/ru/latest/reference/query-builder.html) –

+1

Что означает 'friends.xxxx_id'? Любое конкретное поле? Это может помочь, если вы отправляете объекты «Пользователи» и «Друзья». –

+0

Покажите нам запрос или DQL-код, который у вас есть до сих пор. – Richard

ответ

0

Вы можете сделать, как следует @SergioIvanuzzo, но если вы хотите сделать это внутри вашей организации вы можете также использовать класс доктрины Doctrine\Common\Collections\Criteria для этого. Вы можете прочитать все об этом в главе документации 8.8. Filtering Collections.

public function getFriends(){ 
    $id = 1; // ...the id you want to use for filtering 
    $criteria = Criteria::create() 
     ->where(Criteria::expr()->eq("xxxx_id", $id)); 

    return $this->friends->matching($criteria); 
} 
+0

@ hz4web Сработало ли это с использованием критериев? Это то, что вы искали? – Wilt

Смежные вопросы