1. 目的
前回でフォームを作成しました。しかし、入力内容がどのような流れでDBに保存されていくかを追えてなかったので、今回はそれを追って行こうかと思います。
2. フォームからの入力データ
前回にシステムの入り口として用意したフォームから出欠するしないというデータが送られてきます。もちろん各ユーザが入力します。※その情報を入れるDBですがDrupalの場合はMariaDB 11.8というものになります。(MySQL互換)
仮に出席しますといったデータが流れてきた場合は、出席扱いで名前などとセットでINSERTされます。
3. ソースコードの書き方
続いて、ソースコードの書き方ですが、Drupalの場合は下記のように接続します。
private Connection $database
初回回答の場合の例ですが、下記のようにINSERTします。
$this->database->insert('event_manager_attendance')
->fields([
'uid' => $uid,
'event_id' => (int) $event->id(),
'user_name' => $user_name,
'attendance' => $attendance,
'comment' => $comment,
'created' => $this->time->getRequestTime(),
])
->execute();
4. キャッシュクリア
変更を適用する際は毎回恒例のキャッシュクリアをやります。※Macターミナルかつddev環境を前提に例で挙げます。
ddev drush cr
5. 感想
Drupalの場合はDB接続のやり方がテンプレート化しているので、イチから構築する手間がなくて良いなと思いました。
6. おまけ
ソースとしては前回のフォームと同じファイルに入っています。前回文も一緒にご参照ください。
- 閲覧数 16
コメントを追加