2016-06-23 3 views
2

私は、そのユーザの検索文字で見つけることが私のリポジトリクラスに機能を持っているのsymfony 2.8で自分のウェブに検索をやってる:symfony2の手紙で検索機能を実行するには?

public function findByLetters($string){ 

    return $this->getEntityManager()->createQuery('SELECT u.name FROM AppBundle:User u 
      WHERE u.nombre LIKE :string') 
     ->setParameter('string','%'.$string.'%') 
     ->getResult(); 
    } 

私は、クエリが正しいことだと思うが、この機能は、ときに私私のデータベースのすべてのユーザーを返します...そして、すべてのユーザーが挿入された文字を含んでいるわけではありません。

何が問題なのですか?この関数がすべてのデータベース名を返すのはなぜですか?

ありがとうございます!

+0

クエリは大丈夫ですか、var_dump($ string)でしたか?ただ確信してください –

+0

理由は空の文字列にすることができます。要素を調べて、AJAXが適切な文字列値を持っているかどうかを確認してください。 –

+0

ありがとう!私の機能は空の文字列を受け取っていた..これはすべてを示していた。 – user3745888

答えて

0

あなたはあなたのコードのタイプミスを持っているようだ、あなたはユーザ名ではなく、その「数」をチェックしたい:あなたの文字列がないかどうかを確認してください、他の人が述べたように

public function findByLetters($string){ 

    return $this->getEntityManager()->createQuery('SELECT u.name FROM AppBundle:User u 
      WHERE u.name LIKE :string') 
     ->setParameter('string','%'.$string.'%') 
     ->getResult(); 
} 

を空にしてからfindByLettersを呼び出してください。

関連する問題