2011-03-18 2 views
0

2 테이블 product_categoryproduct_sub_category젠드 프레임 워크를 사용하여 테이블을 조인하면 테이블 필드 하나만 보여줍니다.

필드의 이름은 동일합니다. (ID, 이름, 설명, 우선 순위)

product_sub_categoryproduct_categoryproduct_category 테이블에 외래 키를 가지고 있습니다.

아래 코드는 모두 product_category 필드입니다.

$select = $this->select("t1.* , t2.*") 
    ->setIntegrityCheck(false) 
    ->from(array("t1"=>$this->_name)) 
    ->joinInner(array("t2"=>'product_category'), 't2.id = t1.product_category_id') 
    ->order(array('t1.priority')); 
$res = $this->fetchAll($select); 
return $res; 

$this->_name에서 변수는 product_sub_category 문자열이어야합니다.

두 테이블에서 모든 필드를 볼 수없는 이유는 무엇입니까?

답변

1

MySQL은 같은 이름의 필드를 반환하므로, ZF가 이름을 인덱스로 사용하여 배열로 변환하면 후자는 첫 번째 필드를 덮어 씁니다. 대신 별칭을 지정해야합니다.

$this->select("t1.name AS category_name, t1.explain AS category_explain, t2.name AS subcategory_name") 

등등.

+0

감사합니다. 정말 잘 작동합니다. :) – afsane

관련 문제