Điểm:0

Tối ưu hóa tìm nạp dữ liệu từ các đối tượng thực thể

lá cờ cn

Hiện tại chúng tôi đang sử dụng EntityTypeManager để tải hoặc loadMultiple :

$this->entityTypeManager->getStorage('node')->loadMultiple($nids);
$this->entityTypeManager->getStorage('node')->load($nid);

Điều này tạo và trả về các đối tượng của các nút mà tôi nghĩ sử dụng nhiều tài nguyên trên máy chủ (vì nó tìm nạp tất cả các trường). Chúng tôi cũng đang cố gắng tìm nạp khoảng 500 nút và mỗi nút có hơn 80 trường. Chúng tôi chỉ muốn tìm nạp một số trường nhất định.

Có ai biết cách truy vấn và chỉ tìm nạp các trường nhất định cần thiết không?

misterdidi avatar
lá cờ de
Tôi muốn dựa vào API cơ sở dữ liệu để tạo một truy vấn tùy chỉnh sẽ chỉ tìm nạp các trường nhất định mà bạn cần. Xem câu trả lời của Philipp Zedler trong bài đăng được đề cập bởi @leymannx.
Điểm:2
lá cờ pt

Bạn có thể sử dụng truy vấn tùy chỉnh để hiệu quả hơn, đây là một ví dụ:

$connection = \Drupal::service('database');
$select = $connection->select('node_field_data', 'n');
$select->fields('n', ['nid', 'type', 'title']);
$select->condition('n.status', 1, '=');
$select->condition('n.type', ['page', 'article'], 'IN');
$select->leftJoin('node__body', 'body', 'body.entity_id = n.nid');
$select->fields('body', ['body_value', 'body_summary']);
$result = $select->execute()->fetchAll(); 
// in $result[0]->body_value; 

Bạn phải tham gia bảng cho từng trường bạn cần lấy. Lưu ý rằng kết quả $ không chứa nước Nút đối tượng nhưng stdClass; điều này có thể hoạt động với tất cả các loại thực thể cơ sở dữ liệu (tức là Người dùng hay bất cứ cái gì).

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