2012-11-13 4 views
2
Table 1 
-------------- 
|reseller_id | 
|1   | 
|2   | 
|3   | 
|4   | 
-------------- 

Table 2 
------------------------------- 
|reseller_id | merchandise_id | 
|1   | 1    | 
|1   | 3    | 
|2   | 1    | 
|2   | 4    | 
|3   | 2    | 
------------------------------- 

select * from reseller_maps inner join reseller_merch on reseller_maps.reseller_id = reseller_merch.reseller_id; 

제가 데이터베이스 측에서 찾고있는 것을 제공하고 있습니다. 그러나, 내가 받고있어Magento에 가입하는 데 문제가 있습니다.

Call to undefined method Namespace_Class_Model_Mysql4_Reseller_Collection::joinTable() 

Magento에서 $ collection-> joinTable()을하려고 할 때.

나는 getSelect를 사용) (가입 시도했다 :

 $collection = Mage::getModel('maps/reseller'); 
     $collection->getSelect() 
      ->join(array('reseller_merch'=>$this->getTable('reseller_merch')), 'reseller_maps.reseller_id= reseller_merch.reseller_id', array('reseller_merch.*')); 

을하고 점점 오전 :

SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '' 

를 지금까지 내가이 위키의 예제 코드에서 직접입니다 말할 수 있습니다 : 당신은 표준 수집을 서브 클래스하고 가정 http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento

+0

사용 Mage :: getModel ('maps/reseller') -> getCollection(); – Nate

답변

1

, 그것은해야한다 :

$collection->getSelect()->join($this->getTable('maps/[table_entity]'), 'main_table.reseller_id= reseller_merch.reseller_id'); 

엔티티의 이름이 이와 같이 지정되었다고 가정합니다.

관련 문제