programing

Symfony2 양식 입력에 클래스 속성을 설정하는 방법

powerit 2023. 8. 21. 21:40
반응형

Symfony2 양식 입력에 클래스 속성을 설정하는 방법

설정 방법HTML class양식에 귀속됨.<input>사용FormBuilderSymfony2?

이와 같은 것:

->add('birthdate', 'date',array(
      'input' => 'datetime',
      'widget' => 'single_text',
      'attr' => array(
          'class' => 'calendar'
      )
 ))

 {{ form_widget(form.birthdate) }}

나는 이것을 원해요.input속성이 있는 필드class달력으로 설정

잔가지 템플릿에서 이 작업을 수행할 수 있습니다.

{{ form_widget(form.birthdate, { 'attr': {'class': 'calendar'} }) }}

출처: http://symfony.com/doc/current/book/forms.html#rendering-each-field-by-hand

FormBuilder를 사용하여 이 작업을 수행할 수 있습니다.FormBuilder의 배열에 추가합니다.

'attr'=> array('class'=>'span2')

컨트롤러 내부에서 속성을 설정하고 싶지만 부정확한 부분이 많은 경우 Acyra의 답변이 올바른 방향으로 유도됩니다.

예, FormBuilder를 사용하여 직접 수행할 수 있습니다.attr옵션 배열에 대한 속성(2.1 버전의 경우 여기에, 2.0 버전의 경우 여기에 도입됨)은 다음과 같습니다.

->add('birthdate', 'date',array(
      'input' => 'datetime',
      'widget' => 'single_text',
      'attr' => array('class'=>'calendar')
 ))

기능이 손상되었다는 것은 사실이 아닙니다.그것은 매우 잘 작동합니다!

Symfony2가 HTML을 적용한다는 것은 사실이 아닙니다.class(적어도 2.1 버전부터) 라벨과 입력 모두에 대한 속성입니다.

게다가, 그 이후로.attr속성은 배열 자체이므로 필드에 대해 렌더링할 HTML 속성을 전달할 수 있습니다.HTML5를 통과하고 싶다면 매우 도움이 됩니다.data-특성.

양식 클래스의 옵션에 추가할 수 있습니다.

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'AppBundle\Entity\MyEntity',
        'attr' => array(
            'class' => 'form-horizontal'
        )
    ));
}
{{ form_widget(form.content, { 'attr': {'class': 'tinyMCE', 'data-theme': 'advanced'} })  }}

다음과 같이:

{{ form_widget(form.description, { 'attr': {'class': 'form-control', 'rows': '5', 'style': 'resize:none;'} }) }}

위의 예와 같이 Twig 또는 FormClass에서 이 작업을 수행할 수 있습니다.그러나 양식에서 어떤 클래스를 받아야 하는지 컨트롤러에서 결정하는 것이 좋습니다.일반적으로 컨트롤러에 논리가 많지 않다는 것을 명심하십시오!

    $form = $this->createForm(ContactForm::class, null, [
        'attr' => [
            'class' => 'my_contact_form'
        ]
    ]);

지정된 필드의 HTML 위젯을 렌더링합니다.전체 양식 또는 필드 집합에 이 옵션을 적용하면 각 기본 양식 행이 렌더링됩니다.

{# render a field row, but display a label with text "foo" #} {{ form_row(form.name, {'label': 'foo'}) }}

form_row()의 두 번째 인수는 변수 배열입니다.Symfony에서 제공되는 템플릿은 위의 예와 같이 레이블만 재정의할 수 있습니다.

변수 인수에 대한 자세한 내용은 "양식 변수에 대한 자세한 내용"을 참조하십시오.

언급URL : https://stackoverflow.com/questions/6734821/how-to-set-a-class-attribute-to-a-symfony2-form-input

반응형