Вот содержимое моей пользовательской функции репозитория для моего фида сущностей.
SearchController.php
$searches=$this->getDoctrine()-getRepository('CocoricoUserBundle:User')->findPersonType(1);
Функция хранилища:
public function findPersonType($usertype)
{
$queryBuilder = $this->createQueryBuilder('u')
->addSelect("u")
->where('u.personType = :personType')
->setParameter('personType', $usertype);
try {
$query = $queryBuilder->getQuery();
return $query->getResult();
} catch (NonUniqueResultException $e) {
return null;
}
}
Когда я пытаюсь использовать цикл в mycontroller
foreach ($searches->getId() as $s) {
echo '<pre>';
print_r($s->getAccreditationdata());
echo '<br>';
}
die;
У меня ошибка:
Неустранимая ошибка: вызов функции-члена getId () для массива
Если мне так нравится, то все работает нормально:
foreach ($searches as $s) {
echo '<pre>';
print_r($s->getId());
echo '<br>';
}
die;
Я получаю следующие user_ids: 12345, 1234567, 234567
Теперь, для этих идентификаторов пользователей, далее я хочу найти там аккредитации и секторы, оба имеют много-много-много общего в User Entity. Итак, как я могу получить несколько данных "секторов" и "аккредитаций" обо всех этих пользователях в списке на странице поиска?
Edit:
Ниже приведена связь между субъектом и сектором пользователя.
/**
* @ORM\ManyToMany(targetEntity="UserBundle\Entity\Sectors", inversedBy="user", cascade={"persist"})
* @ORM\JoinTable(
* joinColumns={@ORM\JoinColumn(onDelete="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(onDelete="CASCADE")}
* )
*/
public $sectors;
/**
* @ORM\ManyToMany(targetEntity="UserBundle\Entity\Accreditations", inversedBy="user" , cascade={"persist"})
* @ORM\JoinTable(
* joinColumns={@ORM\JoinColumn(onDelete="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(onDelete="CASCADE")}
* )
*/
public $accreditationdata;