Symfony和原则 - ParameterBag不能转换成字符串

问题描述:

我得到这个错误:Symfony和原则 - ParameterBag不能转换成字符串

Catchable Fatal Error: Object of class Symfony\Component\HttpFoundation\ParameterBag could not be converted to string

我使用的Symfony 3和学说查询生成器

$qb = $this->getEntityManager()->createQueryBuilder(); 
     $qb->select('c') 
       ->from('AppBundle:Certificate', 'c') 
       ->where(' c.enabled = 1') 
       ->where(' c.title LIKE :search') 
       ->orderBy('c.title', $order) 
       ->setParameter('search', '%' . $search . '%'); 

     $query = $qb->getQuery(); 

     return $query->getResult(); 

我尝试添加_toString到我的实体像这样:

public function __toString() { 
     return $this->title; 
    } 

,但我并没有改变它,我将需要使用C柱具有相同的搜索LIKE 其中(CC1,如:搜索或α2,如:搜索)

有没有什么解决办法吗?我需要想寻找两列在给定的搜索字符串,我必须用%:搜索%

谢谢

+0

我们需要更多的上下文。 '$ order'和'$ search'变量的值是什么? –

+1

你,因为你正试图在字符串上下文中使用ParameterBag对象得到这个错误。它与你的实体无关。 – Gordon

+0

我认为你是找错了地方:检查在您使用的请求或对话(该对象parameterBag通常使用的地方) – Matteo

的ParameterBag对象必须是你的$命令或$搜索参数检索由请求对象。尝试在查询之前转储它以查看内部内容。

+0

好了,现在我明白了,我已经习惯了与其他形式不同的工作错误框架,为此感到遗憾。 'ParameterBag {#69▼ #parameters:阵列:1 [▼ “形式”=>数组:2 [▼ “搜索栏”=> “科帕” “_token”=> “sc4ad4vwq2sigMUDtCoyrLYas5hseanPFtg-8SC-HDG” ] ] } –

+1

如果这个转储是针对你的'$ search'变量的,你应该只提取'searchBar'的值 –

+0

我在handle方法中处理我的表单,我的控制器中有Request参数,有没有任何推荐方法,我怎么能与形式上的请求对象一起工作?有必要对待SQL注入的数据,以及类似的东西? –