ChoiceType을 확장하여 선택할 수있는 여러 개의 응용 프로그램 사용자 정의 역할 목록을 제공하는 RolesType을 작성했습니다. 내 역할이 config.yml에 정의 된 바와 같이내부에 사용자 정의 SF3 유형 편집
, 내가 같은 각 RolesType 사용을 위해 그것을 전달하는을 원하지 않는 대신
$builder
->add('authorizedRoles', RolesType::class, [
'label' => static::ROOT_TRANSLATION_PATH . ".roles.label",
'multiple' => true,
'expanded' => false,
'roles_list' => $roles,
'attr' => [
'helper' => static::ROOT_TRANSLATION_PATH . ".roles.helper",
]
])
, 나는 분사하여이 선택 목록을 초기화하기 위해서 노력 roleType에 생성자의 역할 목록 :
public function __construct(array $rolesData) {
$this->rolesData = $rolesData;
foreach($this->rolesData as $roleId => $roleData) {
$this->rolesList[$roleData['label']] = $roleData['key'];
}
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->setAttribute('multiple', true);
$builder->setAttribute('expanded', false);
$builder->setAttribute('choices', $this->rolesList);
$options['multiple'] = true;
$options['expanded'] = false;
$options['choices'] = $this->rolesList;
// 'multiple' => true,
// 'expanded' => false,
// 'choices' => $this->rolesList,
}
public function getParent()
{
return ChoiceType::class;
}
당신은 매우 형태에 따라 행동하는 나의 실패 시도한다 을 볼 수 있습니다. 항상 내 역할을 원하기 때문에 항상 동일한 값을 갖는 여러 옵션과 확장 옵션을 원합니다. 여기에서이 옵션을 사용하는 것이 훨씬 좋습니다 (IMHO).
지금까지 속성 및 옵션은 실패했습니다. 빌더 (또는 양식 유형의 다른 곳에)를 어떻게 설정할 수 있습니까?
에서 비슷한 예를있다 :
같은 것이 될 수 있다고? * 실패 *를 의미합니까? 오류가 있습니까? –
예,이 양식을 서비스로 올바르게 등록했습니다. 방금 당신의 대답을 받아 들였고, 여기서 configureOption 목표에 대한 요점을 완전히 놓치고있었습니다. – nbonniot