web-dev-qa-db-ja.com

Drupal 7からテーブルに挿入

Drupalは初めてです。

  • testというテーブルに2つのフィールド(int)idと(varchar)textがあります
  • 新しいユーザーがサインアップするときに、テーブルにデータを保存したいtest

どうすればそれができるのか知りたいのですが。私はこれについて研究を開始する方法を本当に知りません。

私が見つけた最も近いものは Overrideing user login だと思います。私はそれが私がやりたいことをしていると思いますが、前処理関数ではデータベースに挿入しなければなりません。ここで質問Drupalからデータベースに挿入するにはどうすればよいですか?

誰かが私の考えをクリアしたり、良い参考文献を私に指摘したりできますか?.

ありがとう。

3
ivan.freire

これを行うためにログインプロセスを実際にオーバーライドする必要はありません。ユーザーモジュールは、新しいユーザーが作成されるたびに呼び出されるフック( hook_user_insert() )を提供します。

データベースへの挿入に関する限り、最初に調べるのに最適な場所は データベースアブストラクションレイヤーのドキュメント で、利用可能なさまざまなデータベースメソッドについて詳しく説明しています。

この特定のケースでは、探している db_insert() 関数です。コードは次のようになります。

function MYMODULE_user_insert(&$edit, $account, $category) {
  db_insert('custom_table_name')
    ->fields(array(
      'id' => $account->uid,
      'text' => 'some text'
    ))
    ->execute();
}

このコードはカスタムモジュール内に配置されます。これらのいずれかを作成することに慣れていない場合は、 モジュール開発者用ガイド を確認してください。

5
Clive