如何搜索所有字段中的每个单词 - Doctrine2

时间:2012-08-31 08:34:33

标签: php doctrine-orm

我有一个名为Friends的表,其字段是姓名,电话,地址,Skype,生日和备注。还有一个搜索文件。如何在所有领域进行搜索?这种类似的东西是否适用于搜索词"Ana"并且有更好的方法吗?

$qb->select('f')
   ->from('Friends', 'f')
   ->where('f.name = :name')
   ->orWhere('f.phone = :phone')->orWhere('f.address = :address')-> ... 
   ->setParameters( array(
     'name' => 'Ana',
     'phone' => 'Ana', ...  ));

我还想问一下如何搜索每个单词(类似于全文搜索)?我的意思是如果用户写“Ana Ivan peter@domain.com”来接收所有的行,这些行在他们的领域(无论在哪个领域)Ana,Ivan和peter@domain.com。

例如,如果Ana和Ivan是两个朋友的名字,但是朋友的笔记叫John,“Ivan的朋友”,而Peter是朋友的名字,电子邮件是peter@domain.com ,用户应该收到四行--Ana,Ivan,John和Peter。

1 个答案:

答案 0 :(得分:0)

我不确定这一点,但我认为这可能有效

$search_string = '%".$_POST['search']."%';
$qb-> "select 'f' from 'Friends' where f.name LIKE ':search_string' or f.phone  LIKE ':search_string' or ...";