lấy id nút của bộ sưu tập trường


7

Tôi có mã sau đây. Tôi có thể tải mục bộ sưu tập trường bằng cách sử dụng entity_load_single. Tôi muốn có thể lấy id nút cho một mục bộ sưu tập trường đã cho. Làm thế nào tôi có thể đạt được điều này?

function dc_car_guide_model($model_id)
{
    $model = entity_load_single('field_collection_item', $model_id);
    //How can I get nid?
}

Câu trả lời:


9
$model = entity_load_single('field_collection_item', $model_id);
$node = $model->hostEntity();
echo $node->nid;

Có thể truy xuất dữ liệu trong một trường cụ thể được sử dụng trong Bộ sưu tập trường không? Một chút việt vị tôi biết nhưng tôi chỉ tò mò.
Bernard Nandwa

Có, API trường cũng hoạt động cho các trường trên các thực thể Bộ sưu tập trường. field_get_items('field_collection_item', $field_collection, 'field_FIELD_NAME');sẽ trả về một mảng các giá trị cho một trường có tên trên thực thể bộ sưu tập trường đó. Bạn cũng có thể sử dụng trình bao bọc siêu dữ liệu Thực thể (được coi là cách mới, khéo léo để làm điều này :-p). Chỉ cần xác định rằng bạn đang tải một trình bao bọc field_collection_itemthay vì a node.
thứ ba

0

Sử dụng EntityFieldQuery:

  $query = new EntityFieldQuery();
  $query->entityCondition('entity_type', 'node')
    ->fieldCondition('field_MYCOLLECTIONFIELD', 'value',  $model_id, '=');
  $result = $query->execute();

  if (!empty($result['node'])) {
    $nid = key($result['node']);
  }

thay thế field_MYCOLLECTIONFIELDbằng tên máy của trường Bộ sưu tập trường trên nút của bạn.

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.