0
カスタムフォーム(フォームapi)からノードをプログラムで追加し、保存した後にそのノードにリダイレクトするにはどうすればよいですか?Drupal 8:プログラムでノードを作成し、フォームAPIを使用してリダイレクトします
半日を探して、以下の答えを見つけました。
これは他の人にも便利ですか?
カスタムフォーム(フォームapi)からノードをプログラムで追加し、保存した後にそのノードにリダイレクトするにはどうすればよいですか?Drupal 8:プログラムでノードを作成し、フォームAPIを使用してリダイレクトします
半日を探して、以下の答えを見つけました。
これは他の人にも便利ですか?
「タイプ」ノードのマシン名がある
「タイトル」あなたがあなたのノードで使用されているより「FIELD_NAMES」を追加することができます
新しいノードに与えたいタイトルがある
use Drupal\node\Entity\Node;
use Drupal\Core\Url;
public function submitForm(array &$form, FormStateInterface $form_state) {
$newCompanyNode = Node::create([
'type' => 'company',
'title' => $form_state->getValue('company'),
//'field_name' => $value,
]);
$newCompanyNode->save();
drupal_set_message('Your company has been registered.', 'status');
$url = \Drupal\Core\Url::fromRoute('entity.node.canonical', ['node' => $newCompanyNode->id()]);
return $form_state->setRedirectUrl($url);
}
カスタムフォームを設定する方法の詳細については、 https://www.drupal.org/docs/8/api/form-api/introduction-to-form-api