繁体   English   中英

主义和喜欢查询symfony2

[英]Doctrine and Like query symfony2

我的页面上有一个搜索栏,负责查找用户搜索内容的操作是:

 public function searchAction(Request $request){

        $em = $this->container->get('doctrine')->getEntityManager();

        $evenements= $em->getRepository('Mql14mqlmeBundle:Evenement')->findAll();
        if ('POST' === $request->getMethod()) {

            $search = $request->get('search');
    $query = $this->container->get('doctrine')->getEntityManager()->createQuery( 'SELECT e FROM Mql14mqlmeBundle:Evenement e WHERE e.nom LIKE :search') 
             ->setParameter('search', $search);
        $resultats = $query->getResult();



        return $this->container->get('templating')->renderResponse('Mql14mqlmeBundle:Event:search.html.twig', array(
            'resultats'=>$resultats,

        ));

        }
   return $this->listerAction();
        }

如果用户在数据库中输入了某个事件的确切名称,这是可行的,但是即使它只是名称的一部分,我也想使搜索成为可能,我在查询中尝试了此操作:

    $query = $this->container->get('doctrine')->getEntityManager()->createQuery( 'SELECT e FROM Mql14mqlmeBundle:Evenement e WHERE e.nom LIKE :%search%') 
               ->setParameter('search', $search);

但是我收到此错误:参数格式无效::给定,但:name或?num是预期的。

尝试像这样更改参数:

$query = $this
    ->container
    ->get('doctrine')
    ->getEntityManager()
    ->createQuery(
        'SELECT e FROM Mql14mqlmeBundle:Evenement e WHERE e.nom LIKE :search'
    ) 
    ->setParameter('search', '%'.$search.'%');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM