Tôi đang cố gắng thiết lập Tiêu chí theo the Doctrine Docs.Học thuyết 2.3 Tiêu chí. Truy cập một đối tượng liên quan
Rất tiếc, họ không cho bạn biết cách truy cập các thuộc tính của đối tượng liên quan. Tôi sẽ cho bạn một ví dụ.
Tôi có một ArrayCollection of Products. Mỗi Sản phẩm đều có Danh mục. Tôi muốn lọc ArrayCollection cho một Category Name. Bây giờ tôi đang cố gắng để thiết lập một tiêu chuẩn như sau:
$criteria = Criteria::create()
->where(Criteria::expr()->eq("category.name", "SomeCategoryName"));
Bây giờ tôi nhận được ngoại lệ sau:
An exception has been thrown during the rendering of a template ("Unrecognized field: category.name")
Làm thế nào tôi có thể truy cập vào một đối tượng có liên quan?
Cảm ơn câu trả lời của bạn. Tôi sẽ kiểm tra 'Ctriteria' của bạn vào thứ hai. Ngay bây giờ tôi không có quyền truy cập vào máy trạm của tôi. Tôi sẽ cho bạn biết nếu nó hoạt động. Tuy nhiên bộ lọc là một ý tưởng tồi trong quan điểm của tôi, bởi vì tất cả các hạng mục sẽ được háo hức nạp và sau đó xử lý cục bộ trên đĩa (Những gì sẽ không bao giờ được như perfomant hơn làm nó trên một DB). – Robin
Bạn bị hiểu sai. Tiêu chí có thể được sử dụng trong một truy vấn (dữ liệu được lấy) cũng như trên một ArrayCollection (đã được lấy dữ liệu). Nếu bạn không thực hiện tìm nạp-tham gia thì mối quan hệ sẽ được tải sẵn nếu bạn sử dụng tiêu chí hoặc bộ lọc(). Bạn nói đúng là DB cung cấp cho bạn hiệu suất cao nhất, vì vậy tốt nhất bạn nên sử dụng tìm nạp kết hợp với WHERE. Mặc dù đó không phải là câu hỏi của bạn. – Flip
Tôi nghĩ rằng nó sẽ có thể chú thích các thực thể của bạn, để họ được lười biếng nạp? http: // tài liệu.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#annref-manytoone. Sẽ không tải lười biếng 'ArrayCollection'? Hay điều đó không có tác dụng vì đó là chú thích nghịch đảo? – Robin