Loại nào sẽ được sử dụng cho các trường hộp kiểm trong hook_field_schema?


7

Bài tập:

Tạo một trường tùy chỉnh chứa một hộp kiểm bằng cách triển khai, hook_field_schemav.v.

Câu hỏi:

Loại dữ liệu nào (hoặc nên) được sử dụng để xác định cột cơ sở dữ liệu tương ứng để lưu các giá trị hộp kiểm?

Mã mẫu:

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);
}

Cập nhật: node_schema sử dụng intcho các cột boolean. ví dụ :

'status' => array(
  'description' => 'Boolean indicating whether the node is published (visible to non-administrators).',
  'type' => 'int',
  'not null' => TRUE,
  'default' => 1,
)

Câu trả lời:


10

Một chút intsẽ là thích hợp nhất theo ý kiến ​​của tôi:

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

Một 'tiêu chuẩn' intsẽ là quá mức cần thiết cho một lĩnh vực sẽ chỉ giữ một 0hoặc 1giá trị.

Xem tài liệu loại dữ liệu để biết tổng quan về các loại khác nhau có sẵn cho bạn.


5

Không có boolean trong API lược đồ Drupal, vì vậy bạn chỉ cần sử dụng một int nhỏ. Dưới đây là một ví dụ về hộp kiểm cho một thành viên nơi kiểm tra bị "chặn" và không được chọn là "ở trạng thái tốt":

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

0

pssql mẫu làm việc:

'has_original' => array(
  'pgsql_type' => 'boolean',
  'type' => 'int',
  'size' => 'tiny',
  'not null' => TRUE,
),
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.