在 Symfony 5 的 FormType 中,此上下文中不允许类型 'App\Entity\User' 的表达式
Expression of type 'App\Entity\User' not allowed in this context in FormType in Symfony 5
我正在尝试在表单中过滤属于已登录用户的收件人。
当我尝试使用登录用户过滤我的 Destinataire table 时出现上述错误。
Expression of type 'App\Entity\User' not allowed in this context
Utilisateur 是我的 Destinataire 实体的一个字段。
我的表格:
<?php
namespace App\Form;
use App\Entity\Courrier;
use App\Entity\Destinataire;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Security;
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)
有关详细信息,请阅读此文档 Doctrine Binding Parameters
我正在尝试在表单中过滤属于已登录用户的收件人。
当我尝试使用登录用户过滤我的 Destinataire table 时出现上述错误。
Expression of type 'App\Entity\User' not allowed in this context
Utilisateur 是我的 Destinataire 实体的一个字段。 我的表格:
<?php
namespace App\Form;
use App\Entity\Courrier;
use App\Entity\Destinataire;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Security;
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)
有关详细信息,请阅读此文档 Doctrine Binding Parameters