얘들 아 난 다음 두 개의 엔티티가 있습니다. 내 formBuilder에서 $ QB 얻을교리 쿼리 빌더 오류
public function getCustomFieldsNotUsed($idInquerito) {
$qb = $this->getEntityManager()->createQueryBuilder();
$qb2 = $this->getEntityManager()->createQueryBuilder();
$qb->select('cf')
->from('CareAdminBundle:DbaCustomFields', 'cf')
->where($qb->expr()->notIn('cf.id', $qb2->select('ief.idCustomField')
->from('CareAdminBundle:CarInqueritoExtraFields', 'ief')
->where('ief.idInquerito = :idInquerito')
->getDQL()))
->setParameter('idInquerito', $idInquerito);
return $qb;
}
: 내 DbaCustomFieldsRepository에서 다음과 같은 방법이
public function buildForm(FormBuilder $builder, array $options){
$id_inquerito = $this->id_inquerito;
$builder->add('idCustomField', 'entity', array(
'empty_value' => 'Escolha um campo',
'class' => 'Care\AdminBundle\Entity\DbaCustomFields',
'required' => false,
'query_builder' => function(\Care\AdminBundle\Repository\DbaCustomFieldsRepository $repository) use ($id_inquerito){
return $repository->getCustomFieldsNotUsed($id_inquerito);
}));
}
을하지만 난이 오류가 발생했습니다하지만 난 이유를 알아 냈 캔트 :
:: 19.html.twig에서 템플릿을 렌더링하는 동안 예외가 throw되었습니다 ("{Semantical Error] 행 0, '80 idCustomField': Error : 잘못된 PathExpression, StateFieldPathExpression이어야합니다. ').
문제는 내 QueryBuilder에 있어야한다고 생각하지만 이유는 모르겠다. 도움을 주시면 감사하겠습니다! 감사 :
---------------------------------- 업데이트 ----- ---------------------------------------- 음, 나는 그 솔루션을 얻을 수있을 것입니다. 적절한 방법은 아니지만 잘 작동합니다. 문제는 querybuilder에, 그래서 나는이 한 : 사람이 더 나은 방법을 얻을 경우
//First i pick the CarInqueritoExtraFields By IdInquerito and save the idCustomField from the retrieved object in a array.
$em = $this->getEntityManager();
$carInqueritoExtraFieldsByIdInquerito = $em->getRepository('CareAdminBundle:CarInqueritoExtraFields')->findByIdInquerito($idInquerito);
$arrayExtraFields = array();
foreach ($carInqueritoExtraFieldsByIdInquerito as $extraField) {
array_push($arrayExtraFields, $extraField->getIdCustomField()->getId());
}
//Then this:
$qb->select('cf')
->from('CareAdminBundle:DbaCustomFields', 'cf')
->where($qb->expr()->notIn('cf.id', $arrayExtraFields));
,