я есть ManyToMany соотношение между 2 субъектов посетителей и партии:Symfony доктрина запроса не работает
//Prif\ProtocoleBundle\Entity\Guest
/**
* @var string
*
* @ORM\ManyToMany(targetEntity="Prif\ProtocoleBundle\Entity\Party", cascade={"persist"})
*
*/
private $parties;
я сделал вид, где я могу добавить много стороны гостя с флажками
\\Prif\ProtocoleBundle\Form\GuestType
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('name', 'text', array(
'required'=>true))
->add('firstname', 'text', array(
'required'=>true))
->add('parties', 'entity', array(
'class' => 'PrifProtocoleBundle:Party',
'property' => 'name',
'expanded' => true,
'multiple' => true,
'required'=>false
))
Затем я создал форму поиска (PartySearchType), где я могу выбрать одну или несколько сторон. и когда я отправить форму, я хочу, чтобы иметь гостей, которые были добавлены к тем лицам
Это моя функция поиска в хранилище
//Prif\ProtocoleBundle\Entity\GuestRepository
/**
* Summary
* @param object $name_parties Description
*
* @return object Description
*/
public function searchGuestByParty(array $name_parties) {
$query = $this->createQueryBuilder('g');
$query->Join('g.parties', 'p')
->where($query->expr()->in('p.name', $name_parties));
return $query->getQuery()
->getResult();
Мой поиск Действие в контроллере
/**
* @Route("/", name="guest)
* @Template()
*/
public function searchAction(Request $request) {
$entity = new Guest();
$form = $this->createForm(new PartySearchType(), $entity);
if ($request->getMethod() == 'POST') {
$form->handleRequest($request);
$parties = $form['parties']->getData();
//var_dump($parties) this var_dump shows me a result of selected parties
$repository = $this->getDoctrine()
->getManager()
->getRepository('PrifProtocoleBundle:Guest');
$guests = $repository->searchGuestByParty(array($parties));
//var_dump($guests) this var_dump shows me: array (size=0) empty;
return $this->render('PrifProtocoleBundle:Guest:result.html.twig', array(
'entities' => $guests,
)
);
}
return array(
'form' => $form->createView(),
);
}
}
результат var_dump ($ гостей):
array (size=0) empty
часть вида веточку
\\result.html.twig
{% block body -%}
<h1>List of guests </h1>
<table class="records_list">
<thead>
<tr>
<th>name</th>
<th>surname</th>
</tr>
</thead>
<tbody>
{% for entity in entities %}
<tr >
<td>{{ entity.name }}</td>
<td>{{ entity.surname }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
Моя проблема:
я не уверен моего запроса в функции GuestRepository, и кстати, я называю его в контроллере, сог, когда я сделать var_dump на нем я не получаю нет результатов. поэтому вид пуст! может кто-нибудь взглянуть на код и рассказать мне, что случилось? спасибо за ваше время
привет, спасибо за ответ. это просто ошибка ввода, которую я сделал! coz Я перевел его с французского на английский для этого вопроса. изменил это! – Albee
это результат var_dump ($ Guests): array (size = 0) empty (возможно, это может помочь, спасибо) – Albee