php - Symfony 5 中的 FormType 在此上下文中不允许使用“App\Entity\User”类型的表达式
问题描述
我正在尝试以一种形式过滤属于登录用户的收件人。
当我尝试使用登录用户过滤我的 Destinataire 表时出现上述错误。
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
推荐阅读
- react-native - nativebase选项卡动态选项卡闪烁
- r - 有没有办法使用 case_when 创建一个新变量,但只将条件值更改一个固定的倍数?
- c++ - 基类和派生类的 C++ 向量之间的转换
- sql - 如何在 SQL 中将列合并为一列?
- javascript - 如何使用 jQuery 滚动(元素底部应位于页面底部)
- python - 熊猫中的时间增量矩阵(成对)
- python - 如何防止循环重复我的随机值?
- sql - SQL Server中如何通过行比较计算一致性程度?
- entity-framework - Asp.net MVC 实体框架路径不起作用 - WebAPI 控制器类
- postgresql - 在 Postgres 或其他关系数据库服务器中将插入包装到事务中有什么好处?