来自家庭控制器的真实示例

背景:Household 实体包括一组选项,每个选项都是在管理后端中管理的实体。每个选项都有一个布尔 enabled 标志。如果先前启用的选项设置为禁用,则需要在以后的家庭编辑中保留,但无法将其删除。为了实现这一点,如果选项具有 enabled = false,则表单类中的字段定义将显示字段作为禁用的选择字段(但由于提交按钮触发了删除 disabled 属性的 javascript 而保持该字段。)字段定义还可以防止禁用选项显示。

然后,对于给定的家庭实体,表单类需要知道哪些选项已被禁用。已定义一个服务,该服务返回已禁用的选项实体名称的数组。那个阵列是 $disabledOptions

    $formOptions = [
        'disabledOptions' => $disabledOptions,
        ];
    $form = $this->createForm(HouseholdType::class, $household, $formOptions);