Angenommen, die folgenden zwei Tabellen "Benutzer" und "Freunde";Doktrin 2 QueryBuilder
Beide Spalten in der Freundes-Tabelle entsprechen der ID-Spalte der Benutzer-Tabelle.
Jetzt kann ich einfach Benutzer durch teilweise Namen mit folgenden finden;
$query='jim';
$result=$em->getRepository('\User\Entity\User')
->createQueryBuilder('u')
->where('u.name like :match')
->setParameter('match', $query.'%')
->setMaxResults(5)
->getQuery()
->getResult();
nun ein Objekt von \ Benutzer \ Entity \ User userA davon aus, wie würde ich einen Teilstring Spiel für alle Benutzer zu tun, die userA nicht Freunde mit bereits ist?
EDITAdded die Definitionen 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;
}`
Anstelle von Tabellenspalten können Sie Ihre Entitätsdefinitionen posten? – lxg