2017-10-24 8 views
0

안녕하세요, Drupal 8에서 사용자 정의 모듈을 작성하려고하는데 모듈의 요구 사항에 필드가있는 폼이 있어야합니다.Drupal 8 폼의 파일 유효성 검사 구문

일부 입력란에 양식을 작성하고 입력 데이터에 대해 유효성 검사를 수행했습니다. 이

public function buildForm(array $form, FormStateInterface $form_state) { 
    $form['name'] = array(
     '#type' => 'textfield', 
     '#size' => 15, 
     '#title' => t('Name'), 
     '#default_value' => 'user', 
     '#maxlength' => 15, 
     '#required' => TRUE, 
     '#weight' => 1, 
    ); 
    } 

폼 유효성 검사 코드는 그것이

$form_state->setErrorByName('name', $this->t('Enter a valid name')); 

과 같이 설명되어 일부 페이지에서 드루팔 문서에 따르면이

public function validateForm(array &$form, FormStateInterface $form_state) { 

    $name = $form_state->getValue('name'); 
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) 
    { 
      $form_state->setErrorByName('name', $this->t('Enter a valid name')); 
    } 
    } 

모양처럼

양식 필드 코드가 보인다 일부 페이지는 다음과 같습니다.

$form_state->setErrorByName('$name', $this->t('Enter a valid name')); 

유효성 확인을위한 올바른 구문은 무엇입니까?

이 올바른 하나입니다 setErrorByName 사이 differnce ('$ 이름')과 setErrorByName ('이름')

답변

0
$form_state->setErrorByName('name', $this->t('Enter a valid name')); 

관찰한다. 대답하지만 실제로는 '이름'setErrorByName에 뜻을한다 ('이름')이 필드 이름 또는 변수 이름 또는 일부 더미 이름은 대한

 $name = $form_state->getValue('name'); 
     if(preg_match("/^[a-zA-Z ]*$/", $name)) { 
     $form_state->setErrorByName('name', $this->t('Enter a valid name')); 
     } 
+0

감사? 때문에 내가 ('blabla') setErrorByName 쓰기에도 나 setErrorByName ('$ name') 유효성 검사가 성공적으로 수행됩니다. – miststudent2011

+0

$ form [ 'name']의 이름 – user3575353

+0

setErrorByName ('blabla')을 쓸 때 유효성 검사가 작동하는 이유는 무엇입니까? – miststudent2011