タスク:
hook_field_schema
などを実装して、単一のチェックボックスを含むカスタムフィールドを作成します。
質問:
チェックボックスの値を保存するために対応するデータベース列を定義するために、どの データタイプ を使用しますか(または使用する必要がありますか)?
サンプルコード:
function field_test_field_schema ($field)
{
$columns = array();
switch ($field['type']) {
case 'test':
$columns = array(
'value' => array(
'type' => '???',
'not null' => TRUE
),
);
break;
}
return array('columns'=> $columns);
}
更新:node_schema
はブール列にint
を使用します。例えば:
'status' => array(
'description' => 'Boolean indicating whether the node is published (visible to non-administrators).',
'type' => 'int',
'not null' => TRUE,
'default' => 1,
)
小さなint
が私の意見では最も適切でしょう:
$columns = array(
'value' => array(
'type' => 'int',
'not null' => TRUE,
'size' => 'tiny',
'default' => 0,
),
);
「標準」のint
は、0
または1
の値のみを保持するフィールドには過剰です。
利用可能なさまざまなタイプの概要については、 データタイプ ドキュメントを参照してください。
DrupalスキーマAPIにはブール値がないため、小さなintを使用するだけです。以下は、メンバーのチェックボックスが「ブロック」され、チェックされていない状態が「良好」の場合のチェックボックスの例です。 :
'status' => array(
'description' => '0 = in good standing; 1 = blocked',
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
),
pgsqlが動作するサンプル:
'has_original' => array(
'pgsql_type' => 'boolean',
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
),