준비 수집 방법에서 어떤 테이블을 가져와야 하는지 어떻게 알 수 있나요?

magento.stackexchange https://magento.stackexchange.com//questions/51674

문제

이것으로부터 관리 그리드 컬렉션의 테이블 이름 변경 스레드에서 한 가지 의심이 생겼습니다.

사용자 정의 모듈에서 2개의 테이블을 사용하고 있는 경우 준비 수집 방법에서 어떤 테이블을 가져와야 하는지 어떻게 알 수 있나요?

귀하의 응답을 기다리고 있습니다!

도움이 되었습니까?

해결책

각 모델에 대해 하나의 테이블이 있는 모듈에 대한 다중 모델

모델에 대한 다중 모델 생성은 쉽습니다. define multiple entities 너의 ~에게 Module Model resourceModel 그리고 그것 corresponding entity entity_id Table.

예:

        <custommodule_resource>
            <class>Amit_Custommodule_Model_Resource</class>
            <entities>
                <custommoduleone>
                    <table>custommoduleTestOne</table>
                </custommoduleone>
        <custommoduletwo>
                    <table>custommoduleTestTwo</table>
        </custommoduletwo>
            </entities>
        </custommodule_resource>

모듈의 전체 모델 코드:

<models>
    <custommodule>
    <class>Amit_Custommodule_Model</class>
    <resourceModel>custommodule_resource</resourceModel>
    </custommodule>
    <custommodule_resource>
    <class>Amit_Custommodule_Model_Resource</class>
    <entities>
        <custommoduleone>
        <table>custommoduleTestOne</table>
        </custommoduleone>
        <custommoduletwo>
        <table>custommoduleTestTwo</table>
        </custommoduletwo>
    </entities>
    </custommodule_resource>
</models>

이 모델은 모듈에 대해 두 가지 모델을 제공합니다.

  1. Mage::getModel('custommodule/custommoduletwo') // 엔터티는 custommoduletwo입니다.
  2. Mage::getModel('custommodule/custommoduleone')

클래스 정의 과정

마젠토에 따르면 each Model 해당 항목을 생성해야 합니다. 모델,리소스,컬렉션 수업

모델 클래스 모델용 Mage::getModel('custommodule/custommoduleone')

<?php
class Amit_Custommodule_Model_Custommoduleone extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        $this->_init('custommodule/custommoduleone');
    }

}

자원 클래스

앱/코드/커뮤니티/amit/custodule/model/resource/custoduleone.php- 자세한 내용은 다음에서 확인하세요.:

<?php
class Amit_Custommodule_Model_Resource_Custommoduleone extends Mage_Core_Model_Resource_Db_Abstract
{
    /**
     * Initialize resource model
     *
     * @return void
     */
    public function _construct()
    {
        $this->_init('custommodule/custommoduleone', 'table_Primarykey');
    }
}

컬렉션 클래스:

컬렉션 파일 경로는 다음과 같습니다. Collection.php 앱/코드/커뮤니티/Amit/Custommodule/Model/Resource/Custommoduleone

<?php
class Amit_Custommodule_Model_Resource_Custommoduleone_Collection
extends Mage_Core_Model_Resource_Db_Collection_Abstract{
    protected function _constuct(){
        $this->_init('custommodule/custommoduleone');    
    }
}

두 번째 모델:

모델 클래스

<?php
class Amit_Custommodule_Model_CustommoduleTwo extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        $this->_init('custommodule/custommoduletwo');
    }

}

자원 클래스

앱/코드/커뮤니티/Amit/Custommodule/Model/Resource/Custommoduletwo.php

<?php
class Amit_Custommodule_Model_Resource_Custommoduletwo extends Mage_Core_Model_Resource_Db_Abstract
{
    /**
     * Initialize resource model
     *
     * @return void
     */
    public function _construct()
    {
        $this->_init('custommodule/custommoduletwo', 'table_Primarykey');
    }
}

컬렉션 클래스:

컬렉션 파일 경로는 다음과 같습니다. Collection.php 앱/코드/커뮤니티/Amit/Custommodule/Model/Resource/Custommoduletwo

<?php
class Amit_Custommodule_Model_Resource_Custommoduletwo_Collection
extends Mage_Core_Model_Resource_Db_Collection_Abstract{
    protected function _constuct(){
        $this->_init('custommodule/custommoduletwo');    
    }
}

참고: 한 모델에 대해 여러 테이블을 짧게 제공하겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top