2010-12-03 4 views
5

사용자 정의 모듈에 대한 설정 파일을 설정하려고합니다. 각 'resourceModel'에 대해 고유 한 모델이 필요합니까, 아니면 모델 당 여러 개의 테이블 엔티티를 가질 수 있습니까?Magento - 단일 모델에 대해 여러 개의 테이블을 가질 수 있습니까?


    <config>... 
<model> 
    <namespace> 
    <class>Namespace_Module_Model</class> 
    <resourceModel>module_mysq4</resourceModel> 
    </namespace> 
    <module_mysql4> 
    <class>Namespace_Module_Model_Mysql4</class> 
    <entities> 
     <table_1> 
      <table>table_1</table> 
     </table_1> 
     <table_2> 
      <table>table_2</table> 
     </table_2> 
     <table_3> 
      <table>table_3</table> 
     </table_3> 
     ... 
    </entities> 
    </module_mysql4> 
..</config>

다음 동적 모델을 통해 테이블 ​​사이를 전환 :

는 작동이 뭔가를 얻을 수 있습니까?

및 관련 : 누구나 알고있는 가능한 아이들과 그 아이들의 전문점을 알고 있습니까? 나는 '실재물', '협회'및 '물건'을 보았습니다. - thx

답변

1

Thx에 대한 답변이 & 인 경우 질문에 불분명합니다. 디버깅의 몇 시간 후, 나는 다음과 같은 구조 작업이 있습니다


<models> 
    <modulename> 
    <class>Namespace_Modulename_Model</class> 
    <resourceModel>modulename_mysql4</resourceModel> 
    </modulename> 
    <modulename_type1> 
    <class>Namespace_Modulename_Model_Type1</class> 
    <resourceModel>modulename_mysql4</resourceModel> 
    </modulename_type1> 
    <modulename_type2> 
    <class>Namespace_Modulename_Model_Type2</class> 
    <resourceModel>modulename_mysql4</resourceModel> 
    </modulename_type2> 
    <modulename_mysql4> 
    <class>Namespace_Modulename_Model_Mysql4</class> 
    <entities> 
    <modulename> 
    <table>modulename</table> 
    </modulename> 
    <modulename_type1> 
    <table>modulename_type1</table> 
    </modulename_type1> 
    <modulename__type2> 
    <table>modulename_type2</table> 
    </modulename_type2> 
    </entities> 
    </modulename_mysql4> 

</models> 

그래서 네 - 선언 된 각 모델 (하나 개의 모델, 하나 개의 자원)에 대한 단일 테이블 엔티티가 있지만 각 가정했을 것이다 추가 모델/resourceModel 조합은 알라, 그 자체 modulename_mysql4 노드에서의 별도의 Model_Mysql 클래스를 필요 :


<models> 
<modulename> 
    <class>Namespace_Modulename_Model</class> 
    <resourceModel>modulename_mysql4</resourceModel> 
</modulename> 
<modulename_type1> 
    <class>Namespace_Modulename_Model_Type1</class> 
    <resourceModel>modulename_mysql4_type1</resourceModel> 
</modulename_type1> 
    <modulename_type2> 
    <class>Namespace_Modulename_Model_Type2</class> 
    <resourceModel>modulename_mysql4_type2</resourceModel> 
</modulename_type2> 
<modulename_mysql4> 
    <class>Namespace_Modulename_Model_Mysql4</class> 
    <entities> 
    <modulename> 
    <table>modulename</table> 
    </modulename> 
    </entities> 
</modulename_mysql4> 
<modulename_mysql4_type1> 
    <class>Namespace_Modulename_Model_Mysql4_Type1</class> 
    <entities> 
    <modulename_type1> 
    <table>modulename_type1</table> 
    </modulename_type1> 
    </entities> 
</modulename_mysql4_type1> 
<modulename_mysql4_type2> 
    <class>Namespace_Modulename_Model_Mysql_Type2</class> 
    <entities> 
    <modulename_type2> 
    <table>modulename_type2</table> 
    </modulename_type2> 
    </entities> 
</modulename_mysql4_type2> 
</models> 

을하지만 그건 사실이 아니다. 놀이 설명으로 연극을 듣고 싶어합니다. Thx 도움!

3

당신이 여기서 묻고있는 것이 분명하지 않습니다. 마 젠토는 하나 개의 테이블 리소스에 대한 기본 하나의 자원 및 EAV 스타일의 모델에 대한 특정 방식으로 자원 구성된 하나의 자원많은 테이블이 있습니다.

위에서 설명한 시나리오는 시스템에서 직접 지원하지는 않지만 원하는대로 구현하는 리소스를 구현하는 것을 방해하지는 않습니다. 당신이

관심있는 가능한 아동으로

, 전체 병합 설정의 덤프를 얻고, 모든 노드 (자녀들)를 검사하는 XPath 뷰어를 사용하는 간단한 설정 뷰어 ​​described here를 만들

0

또는 :

<resources> 
     <modulename_setup> 
      <setup> 
       <module>modulename</module> 
      </setup> 
      <connection> 
       <use>core_setup</use> 
      </connection> 
     </modulename_setup> 
     <modulename_write> 
      <connection> 
       <use>core_write</use> 
      </connection> 
     </modulename_write> 

     <modulename_read> 
      <connection> 
       <use>core_read</use> 
      </connection> 
     </modulename_read> 
    </resources> 
+0

확인이 [metaSO 질문] (http://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a 질의) 및 [Jon Skeet : 코딩 블로그] (http://msmvps.com/blogs/jon_skeet/archive/2009/02/17/answering-technical-questions-helpfully.aspx)에서 정답을 제공하는 방법에 대해 설명합니다. – Yaroslav

관련 문제