我在Symfony2中構建了一個頁面,該頁面允許我在數據庫中搜索術語(例如,某人的姓名)並顯示在同一頁面中(即使在頁面重新加載後)所有匹配記錄(例如所有具有此名稱的人)。在Symfony2中搜索DB上的記錄
這是我anagrafica.html.twig
{# src/Acme/MyBundle/Resources/views/Page/anagrafica.html.twig #}
{% extends 'AcmeMyBundle::layout.html.twig' %}
{% block body %}
<form id="formsearch" name="p" method="get" action="anagrafica">
<span>
<input type="text" name="search_name" id="search_name" />
</span>
<input type="image" name="button_search" />
</form>
{% for anagrafica in anagrafiche %}
<article class="blog">
<div class="date">{{ anagrafica.DataNascita|date('c') }}</div>
<header>
<h2><a href="{{ path('AcmeMyBundle_showAnag', { 'id': anagrafica.id }) }}">{{ anagrafica.nome }}</a></h2>
</header>
<div class="snippet">
<p>{{ anagrafica.cognome }}</p>
<p class="show_complete"><a href="{{ path('AcmeMyBundle_showAnag', { 'id': anagrafica.id }) }}">Show all data</a></p>
</div>
</article>
{% else %}
<p>There are no entries</p>
{% endfor %}
{% endblock %}
這是我PageController.php
<?php // src/Acme/MyBundle/Controller/PageController.php
namespace Acme\MyBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class PageController extends Controller {
//...
public function anagraficaAction() {
$em = $this->getDoctrine()
->getEntityManager();
$anagrafiche = $em->createQueryBuilder()
->select('b')
->from('AcmeMyBundle:Anagrafiche', 'b')
->where("b.nome = :nome")
->setParameter('nome', 'Alex')
->addOrderBy('b.id', 'DESC')
->getQuery()
->getResult();
return $this->render('AcmeMyBundle:Page:anagrafica.html.twig', array('anagrafiche' => $anagrafiche));
}
}
我想我只需要更新我的PageController.php,取而代之的名稱'Alex' in : ->setParameter('nome', 'Alex')
一個變量,引用我在anagrafica.html.twig中定義的表單中的條目。 無論如何,我不知道如何做到這一點,快速搜索谷歌和論壇不幫助我。
有什麼建議嗎?
正確的,除了在Symfony2的首選方法是:'$請求 - >查詢 - >獲取( '名')';請求對象可以使用'$ request = $ this-> getRequest();'獲取 – Shaheer