我有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($ guests)的結果:
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我不明白沒有結果。 所以視圖是空的!有人可以看看代碼並告訴我什麼是錯的?感謝您的時間
檢索客人嗨,謝謝你的回覆。這只是一個打字錯誤,我做了!因爲我已經把這個問題從法語翻譯成英語。改變了! – Albee
這是var_dump($ guests)的結果:array(size = 0)empty(也許它可以幫助,謝謝) – Albee