Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 无效参数:查询中未定义令牌1_Symfony_Doctrine_Dql - Fatal编程技术网

Symfony 无效参数:查询中未定义令牌1

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

下面是我基于JSON ajax查询过滤宠物的代码 我得到错误的后续图像

公共函数过滤器($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。它很好用。谢谢