web-dev-qa-db-ja.com

hook_field_schemaのチェックボックスフィールドに使用するタイプはどれですか?

タスク:

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,
)
7
user19626

小さなintが私の意見では最も適切でしょう:

$columns = array(
  'value' => array(
    'type' => 'int',
    'not null' => TRUE,
    'size' => 'tiny',
    'default' => 0,
  ),
);

「標準」のintは、0または1の値のみを保持するフィールドには過剰です。

利用可能なさまざまなタイプの概要については、 データタイプ ドキュメントを参照してください。

10
Clive

DrupalスキーマAPIにはブール値がないため、小さなintを使用するだけです。以下は、メンバーのチェックボックスが「ブロック」され、チェックされていない状態が「良好」の場合のチェックボックスの例です。 :

  'status' => array(
    'description' => '0 = in good standing; 1 = blocked',
    'type' => 'int',
    'size' => 'tiny',
    'not null' => TRUE,
    'default' => 0,
  ),
5
Free Radical

pgsqlが動作するサンプル:

'has_original' => array(
  'pgsql_type' => 'boolean',
  'type' => 'int',
  'size' => 'tiny',
  'not null' => TRUE,
),
0
rodnamoc