Symfony 无效参数:查询中未定义令牌1
下面是我基于JSON ajax查询过滤宠物的代码 我得到错误的后续图像Symfony 无效参数:查询中未定义令牌1,symfony,doctrine,dql,Symfony,Doctrine,Dql,下面是我基于JSON ajax查询过滤宠物的代码 我得到错误的后续图像 公共函数过滤器($object,$active=true){ $query=$this->createQueryBuilder('p'); $query->innerjoin('TadpetProfessionalBundle:ProPet','pp','WITH','pp.professionalId=p.id'); $query->innerjoin('TadpetManagerBundle:Pet','ppp','W
公共函数过滤器($object,$active=true){
$query=$this->createQueryBuilder('p');
$query->innerjoin('TadpetProfessionalBundle:ProPet','pp','WITH','pp.professionalId=p.id');
$query->innerjoin('TadpetManagerBundle:Pet','ppp','WITH','ppp.id=pp.petId');
$query->where('p.isActive=:active')
->setParameter('active',$active);
如果(!empty($object->pets)){
$qString=“”;
对于($i=1;$ipets);$i++){
如果($i==1){
$qString.=“ppp.name=:petname”。$i;
}否则{
$qString.=“或ppp.name=:petname”。$i;
}
}
$query->andWhere($qString);
$query->setParameter('petname'+1,$object->pets[0]);
$query->setParameter('petname'+2,$object->pets[1]);
$query->setParameter('petname'+3,$object->pets[2]);
}
返回$query->getQuery()->getResult();
}
请帮我写以下几行:
$query->setParameter('petname'+1,$object->pets[0]);
$query->setParameter('petname'+2,$object->pets[1]);
$query->setParameter('petname'+3,$object->pets[2]);
您正在将“petname”添加到数字中,但应将它们连接起来:
$query->setParameter('petname'.1,$object->pets[0]);
$query->setParameter('petname'.2,$object->pets[1]);
$query->setParameter('petname'.3,$object->pets[2]);
此外,还可以使用循环:
for($i=1; $i<=sizeof($object->pets); $i++){
$query->setParameter('petname'.$i,$object->pets[$i-1]);
}
用于($i=1;$ipets)$(i++){
$query->setParameter('petname'.$i,$object->pets[$i-1]);
}
在这些行中:
$query->setParameter('petname'+1,$object->pets[0]);
$query->setParameter('petname'+2,$object->pets[1]);
$query->setParameter('petname'+3,$object->pets[2]);
您正在将“petname”添加到数字中,但应将它们连接起来:
$query->setParameter('petname'.1,$object->pets[0]);
$query->setParameter('petname'.2,$object->pets[1]);
$query->setParameter('petname'.3,$object->pets[2]);
此外,还可以使用循环:
for($i=1; $i<=sizeof($object->pets); $i++){
$query->setParameter('petname'.$i,$object->pets[$i-1]);
}
用于($i=1;$ipets)$(i++){
$query->setParameter('petname'.$i,$object->pets[$i-1]);
}
谢谢。但我有一个问题。我想在loop的帮助下生成'petname1','petname2','petname3'等等。我的意思是,也可能会有动态的“petname4”等等。我应该用什么方法来解决这个问题。谢谢你的其他回答。嗨,你可以用一个像你以前那样的循环。我编辑了我的答案以反映这一点$i++{$query->setParameter('petname.'($i),$object->pets[$i-1]);}使用我发送给您的更新循环,以便将其设置为true。它很好用。谢谢,谢谢。但我有一个问题。我想在loop的帮助下生成'petname1','petname2','petname3'等等。我的意思是,也可能会有动态的“petname4”等等。我应该用什么方法来解决这个问题。谢谢你的其他回答。嗨,你可以用一个像你以前那样的循环。我编辑了我的答案以反映这一点$i++{$query->setParameter('petname.'($i),$object->pets[$i-1]);}使用我发送给您的更新循环,以便将其设置为true。它很好用。谢谢