首页 > 解决方案 > EasyAdmin 表单选择框 EntityType 未填充

问题描述

我正在尝试使用 EasyAdmin 表单中的 OneToMany 关系填充选择框。但是,状态字段没有填充我数据库中的 TaskStatus 记录,而assignedUsers 填充了。这是我的表单类型:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add(
            'assignedUsers',
            EntityType::class, [
                'class' => User::class,
                'label' => 'Choose assigned users',
                'multiple' => true,
                'required' => true
            ]
        )
        ->add('status',
            EntityType::class, [
                'class' => TaskStatus::class,
                'label' => 'Task status',
                'choice_label' => 'title',
                'choice_value' => 'id',
                'multiple' => false,
                'required' => true
        ]);
}

这是我的 Task 和 TaskStatus 实体关系:

任务:

/**
 * @ORM\ManyToOne(targetEntity="App\Components\Task\Entity\TaskStatus", inversedBy="task")
 */
protected $status;

任务状态:

/**
 * @ORM\OneToMany(targetEntity="App\Components\Task\Entity\Task", mappedBy="status")
 **/
private $task;

标签: symfonyeasyadmin

解决方案


问题是我为我的 TaskStatus 实体使用了错误的存储库:

/**
 * @ORM\Entity(repositoryClass="App\Components\Task\Repository\TaskRepository")
 */

对的一个是:

/**
 * @ORM\Entity(repositoryClass="App\Components\Task\Repository\TaskStatusRepository")
 */

推荐阅读