준비 수집 방법에서 어떤 테이블을 가져와야 하는지 어떻게 알 수 있나요?
-
12-12-2019 - |
문제
이것으로부터 관리 그리드 컬렉션의 테이블 이름 변경 스레드에서 한 가지 의심이 생겼습니다.
사용자 정의 모듈에서 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>
이 모델은 모듈에 대해 두 가지 모델을 제공합니다.
Mage::getModel('custommodule/custommoduletwo')
// 엔터티는 custommoduletwo입니다.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');
}
}
참고: 한 모델에 대해 여러 테이블을 짧게 제공하겠습니다.