Предполагая следующие две таблицы: «пользователь» и «друзья»;Doctrine 2 QueryBuilder
'user'
column: id
column: name
'friends'
column: user_id
column: user2_id
Обе колонки в таблице друзей соответствуют столбцу идентификатора таблицы пользователя.
Теперь я могу просто найти пользователей путем частичного имени со следующим:
$query='jim';
$result=$em->getRepository('\User\Entity\User')
->createQueryBuilder('u')
->where('u.name like :match')
->setParameter('match', $query.'%')
->setMaxResults(5)
->getQuery()
->getResult();
Теперь предполагая объект \ User \ Entity \ User ПользовательА, как бы я сделать частичное совпадение строки для всех пользователей, которые ПользовательА является не друзей с уже?
EDITДобавлен Entity определения
/**
* User
*
* @ORM\Table(name="user", uniqueConstraints={@ORM\UniqueConstraint(name="name_key", columns={"name"})})
* @ORM\Entity
*/
class User
{
/**
* @var integer
*
* @ORM\Column(name="id", type="bigint", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
*/
private $name;
}
/**
* UserFriends
*
* @ORM\Table(name="user_friends", indexes={@ORM\Index(name="user_id_key", columns={"user_id"}), @ORM\Index(name="friend_user_id_key", columns={"friend_user_id"})})
* @ORM\Entity
*/
class UserFriends
{
/**
* @var integer
*
* @ORM\Column(name="id", type="bigint", precision=0, scale=0, nullable=false, unique=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var \User\Entity\User
*
* @ORM\ManyToOne(targetEntity="User\Entity\User")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="friend_user_id", referencedColumnName="id", nullable=true)
* })
*/
private $friendUser;
/**
* @var \User\Entity\User
*
* @ORM\ManyToOne(targetEntity="User\Entity\User")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
* })
*/
private $user;
}`
Вместо столбцов таблицы, пожалуйста, разместите определения сущности? – lxg