포함된 양식이 잘못된 입력 유형을 렌더링합니다.

정밀한

등록 양식을 사용자 정의할 수 있도록 일부 양식 필드는 데이터베이스 정보에서 생성되고 양식은 등록 양식에 포함됩니다.

내장된 폼의 각 필드가 입력되는 동안 어떤 이유로 나뭇가지를 사용하여 렌더링할 때 일부 형식은 url또는 와 같은 형식 입력 number으로 렌더링됩니다 text.

그러나 기본 양식(nom, prenom, email, plainPassword)을 구성하는 모든 필드는 할당된 유형으로 렌더링됩니다.

코드 조각에서 볼 수 있듯이 각 입력을 올바르게 사용 form_widget하고 form_widget렌더링하므로 유형 처리는 Symfony에서 수행합니다.

formView각 필드에 대해 각각 덤프할 때 field.vars.block_prefixes(배열) 에서 입력 유형을 원래대로 찾을 수 있습니다.

예를 들어 다음은 text입력 내용입니다 .

"block_prefixes" => array:3 [▼
  0 => "form"
  1 => "text"
  2 => "_security_extraDataCollection_datum-30"
]

url입력 내용 :

"block_prefixes" => array:4 [▼
  0 => "form"
  1 => "text"
  2 => "url"
  3 => "_security_extraDataCollection_datum-31"
]

그리고 number입력 내용 :

"block_prefixes" => array:3 [▼
  0 => "form"
  1 => "number"
  2 => "_security_extraDataCollection_datum-33"
]

처음에는 를 사용해서 그런 줄 알았는데 material-component-webCSS가 없어도 이런 문제가 발생합니다.

이유에 어떤 생각 urlnumber유형에 설정되어 text나는 enbedded 양식에서 그들을 렌더링 할 때 입력?

Registration form

public function buildForm(FormBuilderInterface $builder, array $options) {
    /** @var array $extraData */
    $extraData=$options['extra_data'];

    $builder->add('nom')
            ->add('prenom')
            ->add('email', EmailType::class)
            ->add('plainPassword', PasswordType::class, array(
                'mapped'=>false,
                'constraints'=>array(
                    new NotBlank(array(
                        'message'=>'Please enter a password',
                    )),
                    new Length(array(
                        'min'=>6,
                        'max'=>4096,
                    )),
                ),
            ));

    if($extraData !== null && is_array($extraData) && count($extraData)) {
        $builder->add('extraDataCollection', UnmappedMixedType::class, array(
            'mapped'=>false,
            'data'=>$extraData,
        ));
    }
}

UnmappedMixedType form

public function buildForm(FormBuilderInterface $builder, array $options) {
    /** @var array $extraData */
    $extraData=$options['data'];

    /** @var ExtraData $extraDatum */
    foreach($extraData as $extraDatum) {
        if($extraDatum->getType() == 'text') {
            $builder->add('datum-'.$extraDatum->getId(), TextType::class, array(
                'mapped'=>false,
                'required'=>$extraDatum->getIsObligatoire(),
                'label'=>$extraDatum->getLabel(),
            ));
        } elseif($extraDatum->getType() == 'url') {
            $builder->add('datum-'.$extraDatum->getId(), UrlType::class, array(
                'mapped'=>false,
                'required'=>$extraDatum->getIsObligatoire(),
                'label'=>$extraDatum->getLabel(),
            ));
        } elseif($extraDatum->getType() == 'number') {
            $builder->add('datum-'.$extraDatum->getId(), NumberType::class, array(
                'mapped'=>false,
                'required'=>$extraDatum->getIsObligatoire(),
                'label'=>$extraDatum->getLabel(),
            ));
        } elseif($extraDatum->getType() == 'checkbox') {
            $builder->add('datum-'.$extraDatum->getId(), CheckboxType::class, array(
                'mapped'=>false,
                'required'=>$extraDatum->getIsObligatoire(),
                'label'=>$extraDatum->getLabel(),
            ));
        } elseif($extraDatum->getType() == 'choice' && $extraDatum->getChoix() !== null && count($extraDatum->getChoix()) >= 1) {
            $builder->add('datum-'.$extraDatum->getId(), ChoiceType::class, array(
                'mapped'=>false,
                'required'=>$extraDatum->getIsObligatoire(),
                'label'=>$extraDatum->getLabel(),
                'multiple'=>$extraDatum->getIsChoixMultipleUtilisateur(),
                'choices'=>array_combine($extraDatum->getChoix(), $extraDatum->getChoix()),
            ));
        }
    }
}

Twig view

{% if form.extraDataForm is defined %}
    <div class="app-auth-left-frame-extra">
        <div class="app-form-container">
            <div class="app-form_field-container">
                {% for field in form.extraDataForm %}
                    {{ dump(field) }}
                    {% if field.vars.block_prefixes[1] == 'text' or field.vars.block_prefixes[1] == 'number' %}
                        <div class="mdc-text-field mdc-text-field--outlined">
                            {{ form_widget(field, {'attr': {'class': 'mdc-text-field__input'}}) }}
                            <div class="mdc-notched-outline">
                                <div class="mdc-notched-outline__leading"></div>
                                <div class="mdc-notched-outline__notch">
                                    {{ form_label(field, null, {'label_attr': {'class': 'mdc-floating-label'}}) }}
                                </div>
                                <div class="mdc-notched-outline__trailing"></div>
                            </div>
                        </div>
                    {% elseif field.vars.block_prefixes[1] == 'checkbox' %}
                        <div class="mdc-form-field">
                            <div class="mdc-checkbox">
                                {{ form_widget(field, {'attr': {'class': 'mdc-checkbox__native-control'}}) }}
                                <div class="mdc-checkbox__background">
                                    <!--suppress HtmlUnknownAttribute -->
                                    <svg class="mdc-checkbox__checkmark" viewBox="0 0 24 24">
                                        <path class="mdc-checkbox__checkmark-path" fill="none" d="M1.73,12.91 8.1,19.28 22.79,4.59"></path>
                                    </svg>
                                </div>
                            </div>
                            {{ form_label(field, null, {'label_attr': {'class': 'app-txt-light-emphasis'}}) }}
                        </div>
                    {% elseif field.vars.block_prefixes[1] == 'choice' %}
                        <div>{{ form_widget(field) }}</div>
                    {% endif %}
                {% endfor %}
            </div>
        </div>
    </div>
{% endif %}
큐데끼페

문서에서 말하는 UrlType 필드 :

UrlType 필드는 제출된 값에 아직 프로토콜이 없는 경우 제출된 값 앞에 지정된 프로토콜(예: http://)을 추가하는 텍스트 필드입니다.

url유형이 있는 입력을 원하면 다음과 같이 고유한 양식 필드 유형을 작성하십시오.

class MyUrlType extends AbstractType {

    /**
     * {@inheritdoc}
     */
    public function buildView(FormView $view, FormInterface $form, array $options)
    {
        $view->vars['type'] = 'url';
    }

    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return __NAMESPACE__.'\TextType';
    }
}

여기에서 https://symfony.com/doc/current/form/create_custom_field_type.html

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

실행이 잘못된 출력을 렌더링하는 이유는 무엇입니까?

tkinter가 파이썬에서 잘못된 RGB 음영을 렌더링합니다.

잘못된 제출 후 Django 로그인 양식이 입력을 유지하지 않습니다.

새 SimpleDateFormat 객체에 연도가 잘못된 달력이 포함 된 이유는 무엇입니까?

libgdx에서 잘못된 모양을 렌더링합니까? (다이아몬드로 나타나는 원)

레이아웃과 렌더링 변환을 모두 수행하면 잘못된 출력이 나타납니다.

합계가 포함된 MySql 조인이 잘못된 출력을 반환합니다.

식이 잘못된 유형입니다.-Oracle 오류

Rails 양식은 유효성 검사 오류 후 잘못된 URL을 렌더링합니다 (전달 된 매개 변수를 유지하지 않음).

표현식이 함수에 대해 잘못된 유형입니다.

bindFromRequest가 잘못된 형식을 사용하는 이유는 무엇입니까?

생성된 프로세스의 출력을 인쇄하면 잘못된 형식의 출력이 생성됩니다. 그 이유는 무엇입니까?

데이터 형식이 잘못된 경우 입력을 어떻게 다시 실행합니까?

파일 유형이 포함 된 Symfony 4 편집 양식을 렌더링 할 때 오류 발생

링크에 대한 입력에서 잘못된 값을 얻고 있습니다 (양식 아님).

라이브러리에서 고유 한 유형을 확장하는 것이 잘못된 형식입니까?

이 입력이 Joda-Time PeriodFormatter에 대해 잘못된 형식인 이유는 무엇입니까?

잘못된 입력이 제공된 경우 -1.0 값을 반환하려면 내 함수에 무엇을 포함해야 합니까?

DataTables는 데이터베이스에서 잘못된 DateTime 값을 렌더링합니다.

memset이 잘못된 값을 입력하는 이유는 무엇입니까?

Django 캘린더 양식 잘못된 입력

InvalidTextRepresentation: bigint 유형에 대한 잘못된 입력 구문:"모든 양식"

슬림이 잘못된 경로에서 템플릿을 렌더링하려고합니다.

잘못된 입력 모양

FullCalendar 날짜 및 시간이 잘못된 레일을 렌더링했습니다.

잘못된 양식 입력에 대한 렌더링 된 HTML 응답의 HTTP 상태

while 문이 확인 중이지만 잘못된 입력을 허용합니다.

PDF에 포함 된 JPEG가 원본과 약간 다르게 렌더링되는 이유는 무엇입니까?

Java Decimal 형식이 잘못된 출력

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관