在Symfony 5的FormType中,在此上下文中不允许使用类型为"App\Entity\User"的表达式



我正在尝试以表单形式筛选属于登录用户的收件人。

当我试图用登录用户过滤Destinataire表时,我出现了上述错误。

Expression of type 'AppEntityUser' not allowed in this context

Utilisateur是我的Destinataire实体的一个字段。我的表格:

<?php
namespace AppForm;
use AppEntityCourrier;
use AppEntityDestinataire;
use DoctrineORMEntityRepository;
use SymfonyBridgeDoctrineFormTypeEntityType;
use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentOptionsResolverOptionsResolver;
use SymfonyComponentSecurityCoreSecurity;
class CourrierType extends AbstractType
{
private $security;
public function __construct(Security $security)
{
$this->security = $security;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('objet')
->add('destinataire', EntityType::class, [
'class' => Destinataire::class,
'placeholder' => '--Choisissez un destinataire--',
'query_builder' => function (EntityRepository $er) 
{
$user = $this->security->getUser();
return $er->createQueryBuilder('qb')
->where('utilisateur', $user)
->addOrderBy('qb.denomination', 'ASC')
->addOrderBy('qb.prenom', 'ASC')
->addOrderBy('qb.nom', 'ASC');
},
])           
->add('dateEnvoi')
->add('dateRelance')
->add('statut')
->add('offreReference')
->add('nosReferences')
->add('vosReferences')
->add('annonceCopie')
->add('paragraphe1')
->add('paragraphe2')
->add('paragraphe3')
->add('paragraphe4')  
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Courrier::class,
]);
}
}

错误出现在线路上:

->where('utilisateur', $user)

替换此行->where('qb.utilisateur = :user')->setParameter('user', $user)

欲了解更多信息,请阅读本文档条令绑定参数

最新更新