2013-09-27 3 views
0

데이터베이스 결과를 가져 오는 데 exchangeArray() 메서드를 사용하는 Object Mapper와 함께 TableGateways를 사용하고 있습니다. 이 방법은 한 번에 데이터를 가져 오는 데 적합합니다.한 테이블의 결과를 기반으로 두 테이블 쿼리 - Zend 2

그러나 쿼리를 수행하여 각 행의 foreach 루프에서 다른 결과 집합을 얻으려는 결과 테이블을 렌더링하는 데 어려움을 겪고 있습니다.

일반적인 PHP에서는 첫 번째 데이터 집합에 대한 루프를 작성한 다음 첫 번째 루프 내에 각 레코드에 대한 쿼리를 실행하는 다른 루프를 작성합니다. 이것은 Zend의 MVC 접근법을 따르지 않으므로 동일한 것을 어떻게 달성 할 수 있습니까?

이것은 조인과 관련이 없습니다.

나는 송장 및 지불 테이블이 있습니다. 나는 지불 테이블을 출력하고 각 지불마다, 나는 그 특정한 지불에 묶이는 송장을 출력하고 싶다. Zend의 MVC 및 TableGateway 패턴을 사용하여이 작업을 수행하려고합니다.

감사합니다.

+0

"왼쪽 가입"에 대해 이야기하고 있습니까? – akond

답변

0

일반적인 PHP에서는 첫 번째 데이터 집합에 대한 루프를 작성한 다음 첫 번째 루프 내에 각 레코드에 대한 쿼리를 실행하는 다른 루프를 작성합니다. 이것은 Zend의 MVC 접근법을 따르지 않으므로 동일한 것을 어떻게 달성 할 수 있습니까?

음, MVC 패턴은 이와 같은 수준의 복잡성을 추가 할 것이므로 반드시 나쁜 것은 아닙니다.

이전과 동일하게 수행 할 수 있으며 결과를 반복하여 & 관련 데이터를 가져올 수 있습니다. 그러나 데이터를 표시 할 때 데이터를 표시하는 대신 컨트롤러에서 또는 바람직하게는 service or DataMapper object으로 데이터를 표시합니다. 결과를 두 번 반복해야하기 때문에 이것은 복잡성의 추가 수준입니다. 관련 데이터를 한 번 수집하면 & 번 표시됩니다. 데이터 수집 방식을 변경하지 않고도 데이터가 어떻게 보이는지를 변경하지 않아도 코드를 유지 관리하기 쉬워 지므로 코드를 유지 관리하기가 쉽지 않으므로이 작업이 반드시 나쁜 것은 아닙니다.

또는 Doctrine과 같은 ORM을 사용하여 하나의 함수 호출에서 관계 매핑을 제공 할 수 있습니다 (본질적으로 동일한 두 개의 루프를 수행함). 물론 ORM이 작동하는 방식과 API를 배우는 것이 필요합니다.

관련 문제