2014-02-07 2 views
-1
public function searchAction(Request $request) 
{  
    $em = $this->getDoctrine()->getEntityManager(); 
    $searchName = $request->query->get('search_name'); 
    $searches= \explode(' ', $searchName); 
    $search = $em->createQueryBuilder()->select('c') 
        ->from('SavvyContactBundle:Contact', 'c') 
        ->where("c.name = :name") 
        ->setParameter('name', $searchName) 
        ->addOrderBy('c.id', 'DESC') 
        ->getQuery(); 

    return $this->render('SavvyContactBundle:Contact:list.html.twig', array('search' => $search, 'searches' => $searches)); 
} 

Это основной поиск конкретных слов, и я хочу, чтобы сделать предварительный поиск как поиск каждые отдельные слова, которые вменяемые в поле ввода так, пожалуйста, помогите и дайте мне знать, если я ошибаюсь где-то.Поиск Advance в Symfony2

+0

Не могли бы вы дать мне некоторые отзывы, пожалуйста? – coma

+0

жаль, что я забыл вас, но ваш код работает благодаря – craig

ответ

0

Я пишу с мобильного телефона, но у вас есть идея?

... 

$words = explode(' ', $searchName); 

$qb = $em->createQueryBuilder() 
    ->select('c') 
    ->from('SavvyContactBundle:Contact', 'c') 
    ->addOrderBy('c.id', 'DESC'); 

foreach ($words as $word) { 

    $qb 
     ->orWhere("c.name = :word") 
     ->setParameter('word', $word); 
} 

$contacts = $qb->getQuery()->execute(); 

...