Điểm:1

Làm cách nào để tải một Chế độ xem theo chương trình?

lá cờ om

Tôi đã tạo một Chế độ xem mà tôi muốn tìm nạp đầu ra từ bên trong một mô-đun. Trên drupal.org, mới nhất sự giới thiệu có vẻ như

$entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load(1)

Vì vậy, đây là mã của tôi.

/** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager */
$view = \Drupal::entityTypeManager()
  ->getStorage('xem')
  -> tải($view_id);
$view->getDisplay('latest_blog');

Nó dường như đang đưa tôi đến rất gần - khi gỡ lỗi, tôi thấy các thuộc tính cho biết rõ ràng rằng tôi đang nhận được đối tượng.

Tôi đang đi đúng hướng và chỉ thiếu một mảnh nhỏ? Tải một thuật ngữ phân loại hoặc một nút thật dễ dàng.Nhưng điều này View đang làm tôi bối rối và tôi không thể tìm thấy bất cứ điều gì ngoài cách Drupal 7 cũ để làm điều này.

Les Lim avatar
lá cờ us
Nhận đầu ra của một thực thể có thể là kết xuất thực thể đó. Nói chung, *đang tải* chỉ được dùng để có nghĩa là *tìm nạp một thực thể từ bộ lưu trữ của nó*.
sea26.2 avatar
lá cờ om
@LesLim Tôi không đồng ý ... Một tìm kiếm cho điều đó (mà tôi đã làm, tình cờ) sẽ chỉ ra cách "kết xuất" chế độ xem. Đó không phải là điều tôi muốn. Câu trả lời sử dụng cùng ngữ cảnh mang lại kết quả mà tôi mong đợi cho một nút. Có vẻ như điều tương tự cũng nên áp dụng cho Chế độ xem.
Les Lim avatar
lá cờ us
Sau đó, tôi cho rằng tôi không chắc những gì bạn muốn thấy trên thực thể được tải mà bạn không nhìn thấy.
Điểm:3
lá cờ cn

Bạn có thể muốn tải một Chế độ xemCó thể thực thi:

lớp ViewExecutable

Đại diện cho một cái nhìn như một tổng thể.

Một đối tượng chứa tất cả dữ liệu để tạo chế độ xem, cộng với chức năng thành viên để xây dựng truy vấn dạng xem, thực hiện truy vấn và hiển thị đầu ra.

$executable = $view->getExecutable();
Điểm:2
lá cờ om

Cảm ơn bạn @4x4. Tôi đã đào xung quanh lõi và cũng tìm thấy điều đó. Mã làm việc của tôi tạo ra nút kết quả từ truy vấn là đây.

  $view = \Drupal::entityTypeManager()
    ->getStorage('xem')
    ->tải($view_id)
    ->getExecutable();

  // Lấy NID từ kết quả View.
  $view->initDisplay();
  $view->setDisplay('latest_blog');
  $view->exec();
  $result = $view->kết quả;

Với NID từ đó, chúng tôi có thể dễ dàng có được đường dẫn - đó là thứ tôi cần.

No Sssweat avatar
lá cờ ua
Nếu bạn chỉ muốn biết kết quả, một phím tắt nhỏ [views_get_view_result](https://api.drupal.org/api/drupal/core%21modules%21views%21views.module/function/views_get_view_result/9.3.x)

Đă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.