hook_field_schemaのチェックボックスフィールドにどのタイプを使用しますか?


7

仕事:

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

回答:


10

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

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

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

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


5

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

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

0

pgsqlが動作するサンプル:

'has_original' => array(
  'pgsql_type' => 'boolean',
  'type' => 'int',
  'size' => 'tiny',
  'not null' => TRUE,
),
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.