Thursday, July 22, 2010

Symfony backend: Custom query get item list

Mặc định phần list trong module quản lý ở backend query rất là ngu! Kiểu của nó là mỗi query ra thông tin 1 bản ghi, do đó sẽ query nhiều câu
Ngu ở đây là do nó tự động, nó ko biết join cho mình, mình phải tạo ra một method để chủ động query join các bảng cần thiết lấy ra thông tin mong muốn.
Ví dụ: Tạo hàm retrieveBackendNewsList trong  NewsTable.php

public function retrieveBackendNewsList() {
  $q = Doctrine_Query::create()->from('News n')->leftJoin('n.Author a')
                  ->leftJoin('n.Category c')
                  ->leftJoin('n.Translation t');
  return $q;
}

Sau đó thêm vào phần cấu hình module, khai báo method sẽ dùng query lấy thông tin danh sách
list:
  table_method: retrieveBackendNewsList

0 comments:

Post a Comment