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'));
と同様に文書化されている一部のページではDrupalのドキュメントによると、この
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( '$名')とsetErrorByName( '名前')
答えてくれてありがとうしかし、どのような実際には「名前」のsetErrorByNameに意味がある私はsetErrorByName(「blabla」)を書く場合もあるので(「名前」)は、それは?フィールド名や変数名やいくつかのダミーの名前ですか、 setErrorByName( '$ name')検証が正常に実行されます。 – miststudent2011
名前は$ form ['name'] – user3575353
です。setErrorByName( 'blabla')を書くと、検証がうまくいかない理由は何ですか? – miststudent2011