私は drupal 7 で作業しています。一意である必要があるユーザー登録フォームのフィールドが必要です。ユーザーの ID を格納する整数フィールドです。私は何の開発もせずに数時間探し回っています。誰かがこれを案内してくれますか?
ありがとうございました。
私は drupal 7 で作業しています。一意である必要があるユーザー登録フォームのフィールドが必要です。ユーザーの ID を格納する整数フィールドです。私は何の開発もせずに数時間探し回っています。誰かがこれを案内してくれますか?
ありがとうございました。
admin/config/people/account/fields からユーザー エンティティ タイプにカスタムの「スタッフ ID」フィールドを追加できます (構成 -> 人 -> アカウント設定)。新しい整数フィールドを追加し、それをマークして登録フォームに表示するか、必須にすることができます。
フィールド値が一意であることを確認するには、カスタム モジュールを使用する必要があります。カスタム モジュールでform_id_form_alter フックを使用して、カスタム検証を登録フォームに追加します。次に、検証中に、値がデータベースにまだ存在しないことを確認し、フォーム エラーを返すことができます。
カスタム モジュールの例:
<?php
function mymodule_form_user_register_form_alter(&$form, &$form_state, $form_id){
$form['#validate'][] = 'mymodule_user_registration_validate';
}
function mymodule_user_registration_validate(&$form,&$form_state){
$staff_id = $form_state['values']['staff_id_field'];
$check_unique_query = 'SELECT field_staff_id_value FROM {field_data_staff_id} WHERE field_staff_id_value = :staff_id LIMIT 1';
//if a result is returned, that means the $staff_id exists
if (db_query($check_unique_query,array(':staff_id'=>$staff_id))->fetchField()){
form_set_error('staff_id_field','This Staff ID is already in use');
}
}
Unique フィールド モジュールを試しましたか? ここで必要なことを確実に実行します。
フィールド検証はトリックhttps://drupal.org/project/field_validationを行います。登録フォームでもフィールドごとに任意のルールを設定できます