Điểm:0

Kể từ đó, tôi đã tìm ra một số cách hiệu quả, tôi sẽ đăng câu trả lời để thu hút câu trả lời hay hơn câu trả lời của tôi!

lá cờ jp

Tạo tệp từ s3fs (nhóm S3) phá vỡ quá trình di chuyển

Tôi có hai trường tham chiếu thuật ngữ: màu sắc và thẻ. Tôi có một cây anh túc, nó có các thẻ: khá và màu sắc: , màu đỏ.

màu xanh lá

Tôi muốn html như:

Hoa này là: xanh, xinh, đỏ

  • I E.

Tôi muốn lấy các thuật ngữ từ hai trường và hợp nhất chúng thành một bộ sưu tập.

Tôi đã thử trong Twig:

Tôi bắt đầu trong cành cây. Tôi có thể kết hợp các điều khoản nhưng tôi không thể sắp xếp chúng.
{% set alltags = content.field_tags['items']|merge(content.field_colours['items']|keys|map(i => content.field_colours[i])) %} 
{{ tất cả các thẻ }}

Tôi đã thử trong quá trình trước Sau đó tôi chuyển sang PHP trong một mytheme_pre process_node() chức năng. Tôi nghĩ rằng tôi có thể lén lút một vài trong số màu sắc các điều khoản trong thẻ

 trường... Có vẻ như thêm chúng vào đối tượng OK, nhưng không có màu nào được xuất ra.
/** @var Drupal\Core\Field\EntityReferenceFieldItemList */
$colorsTags = $variables['content']['field_colours']['#items'] ?? VÔ GIÁ TRỊ;
if ($colorsTags && $colorsTags->count()) {
  $tags = $variables['content']['field_tags']['#items'];
  foreach ($colorsTags as $item) {
    /** @var Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem $item */
    $tags->appendItem($item->getValue());
  }
}

Điểm:0
lá cờ jp

Tôi đã tìm thấy một số cách để đạt được nó, đăng ở đây, nhưng tôi sẵn sàng cho những cách tốt hơn/sạch sẽ hơn. Tôi đặc biệt không hài lòng với câu trả lời của mình về cách truy cập tên thẻ - có vẻ quá phức tạp khi cố gắng lấy tên thô?!

Cả hai khối mã sống trong một mytheme_pre process_node():

Trả lời 1: tạo một biến mới với tất cả các thẻ trong đó:

<?php

  $allTags = [];
  $addTags = function($fieldName) sử dụng (&$allTags, $variables) {
    if (isset($variables['content'][$fieldName])) {
      foreach (\Drupal\Core\Render\Element::children($variables['content'][$fieldName]) as $i) {
        $allTags[]= $variables['content'][$fieldName][$i];
      }
    }
  };
  $addTags('trường_màu');
  $addTags('field_tags');
  usort($allTags, function ($a, $b) {
    $tagA = $a['#taxonomy_term']->name->getValue()[0]['value'];
    $tagB = $b['#taxonomy_term']->name->getValue()[0]['value'];
    trả về strcasecmp($tagA, $tagB);
  });
  $variables['content']['allTags'] = $allTags;

Sau đó, trong Twig cho mẫu nút: {{ tất cả các thẻ }}.

Trả lời 2: trộn các thẻ từ trường màu vào trường thẻ trong mảng kết xuất

<?php

  $allTagsTemp = [];
  foreach (\Drupal\Core\Render\Element::children($variables['content']['field_tags']) as $i) {
    $tag = $variables['content']['field_tags'][$i];
    bỏ đặt($tag['#weight']);
    unset($variables['content']['field_tags'][$i]);
    $allTagsTemp[] = $tag;
  }
  foreach (\Drupal\Core\Render\Element::children($variables['content']['field_colours']) as $i) {
    $tag = $variables['content']['field_colors'][$i];
    bỏ đặt($tag['#weight']);
    unset($variables['content']['field_colors'][$i]);
    $allTagsTemp[] = $tag;
  }
  usort($allTagsTemp, function ($a, $b) {
    $tagA = $a['#taxonomy_term']->name->getValue()[0]['value'];
    $tagB = $b['#taxonomy_term']->name->getValue()[0]['value'];
    trả về strcasecmp($tagA, $tagB);
  });
  $variables['content']['field_tags'] += $allTagsTemp;

Sau đó trong cành cây {{ field_tags }}.

lá cờ cn
`$a['#taxonomy_term']->name->getValue()[0]['value']` có thể được rút ngắn thành `$a['#taxonomy_term']->label()`
lá cờ jp
@Clive cảm ơn bạn, tôi nghĩ phải có một con đường tắt!!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.