我想使用 FormBuilder 创建一个包含多个表单的表单,每个表单对应一个实体。我的问题是我想从我的控制器中设置一些底层表单的字段。
我的实体之间的关系是:
- 投票站 OneToMany 候选人
- PollingStation 一对多用户
- 投票多对一候选人
- 投票多对一投票站
- 投票多对一用户
我有 $pollingStation、$voter 和一个数组 $candidates。我希望每个子表单引用 $candidates 的不同元素(例如,选民单独评估每个候选人)。
我找到了这个链接,这给了我按如下方式进行的想法,但它仍然没有解决我的问题。
控制器:
$formBuilder = $this->createFormBuilder();
$choices = $pollingStation->getCandidates();
foreach ($candidates as $candidate)
{
$ballotType = new BallotType($pollingStation, $voter, $candidate);
$formBuilder->add($candidate->getName(), $ballotType);
}
$form = $formBuilder->getForm();
选票类型:
public function __construct(\Entity\PollingStation $pollingStation, \Entity\User $user, \Entity\Candidate $candidate)
{
$this->pollingStation = $pollingStation;
$this->user = $user;
$this->candidate = $candidate;
}