Điểm:0

Truy cập các thực thể (không liên quan) từ bên trong nhánh mà không cần tiền xử lý

lá cờ in

Trong một mẫu Twig nút, tôi có thể truy cập, ví dụ: các trường được tham chiếu với ...

{{ node.field_my_entity_reference.0.entity.field_my_field.0.value }}

Với sự giúp đỡ của Tweak cành cây Tôi có thể hiển thị các trường từ các nút cụ thể bằng cách tham chiếu NID của chúng (ở đây là NID 1)...

{{ drupal_field('field_my_field', 'node', 1) }}

Bây giờ có thể truy cập trực tiếp vào các trường của các nút cụ thể bằng NID của chúng, không chỉ nhận nội dung được hiển thị, bằng cách mà Drupal đã cung cấp hoặc với sự trợ giúp của một mô-đun như Twig Tweak? Tôi biết điều này có thể thực hiện được thông qua tiền xử lý, nhưng tôi đang tìm cách thực hiện việc này trực tiếp trong Twig.

Điểm:1
lá cờ ve

Drupal twig ngăn bạn thực hiện một số chức năng, nhưng bạn có thể thêm chức năng tùy chỉnh thông qua tiện ích mở rộng twig tùy chỉnh, giả sử get_any_node_field_value

trong cành cây:

<div>
  {{get_any_node_field_value(nodeId, 'field_my_custom_name')}}
</div>

bài viết này dường như đưa ra phần giới thiệu tốt về việc thiết lập tiện ích mở rộng twig tùy chỉnh. Tóm lại:

web/mô-đun/tùy chỉnh/your_module/src/Tiện ích mở rộng/TwigExtension.php:

<?php

không gian tên Drupal\your_module\Extension;

sử dụng Twig\Extension\AbstractExtension;
sử dụng Cành cây\TwigFunction;

lớp TwigExtension mở rộng AbstractExtension {

  hàm công khai getFunctions(): mảng {
    trở lại [
      TwigFunction mới('get_any_node_field_value', [$this, 'get_any_node_field_value']),
    ];


    hàm công khai get_any_node_field_value ($nodeId, $fieldName) {
      // logic của bạn ở đây  
    }

}

Xin lưu ý rằng điều này không ảnh hưởng đến cài đặt bộ đệm của bạn, vì vậy bạn sẽ không nhận được bản cập nhật mẫu tự động nếu nút X không liên quan thay đổi. Tùy thuộc vào trường hợp sử dụng của bạn, đây có thể không phải là vấn đề, nhưng nó có thể khiến bạn lo lắng sau này. Nếu bạn cần quan tâm đến bộ nhớ đệm, tốt hơn hết bạn nên thực hiện quy trình tiền xử lý và mở rộng cả các thẻ bộ đệm.

lá cờ ru
Đặt cược 10 đô la, điều này ** sẽ ** rơi vào ngón chân của bạn sau :-)
lá cờ ve
Phụ thuộc vào trường hợp sử dụng mà tôi muốn nói - nhưng tôi đồng ý: Nó chắc chắn có khả năng làm như vậy ;-)
4uk4 avatar
lá cờ cn
Không có vấn đề gì khi viết các hàm Twig với siêu dữ liệu bộ đệm hoặc tệp đính kèm. Chỉ cần bong bóng chúng lên. Nó giống nhau đối với tất cả nội dung lồng nhau, bất kể có trong chức năng Twig hay không. Tất cả chúng đều chạy trong cùng một bối cảnh kết xuấ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.