2017-09-20 7 views
0

modx 소스 객체를 확장하려고하지만 오류가 계속 발생합니다. & 이유를 파악할 수 없습니다. 그것은 스키마와 관련이 있습니다 (제 생각에는)하지만 모든 것이 정확 해 보입니다.Modx modResource 스키마 오류 확장

스키마 :

<?xml version="1.0" encoding="UTF-8"?> 

<model package="extresource" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" tablePrefix="modx_" version="1.0.0"> 
    <object class="extResource" extends="modResource"> 
     <composite alias="ResourceData" class="ResourceData" local="id" foreign="internalKey" cardinality="one" owner="local"/> 
    </object> 
    <object class="ResourceData" table="resource_data" extends="xPDOSimpleObject"> 
     <field key="internalKey" dbtype="int" precision="11" phptype="integer" null="false" attributes="unsigned"/> 
     <field key="views" dbtype="int" precision="11" phptype="integer" null="true" /> 
     <field key="starred" dbtype="int" precision="10" phptype="integer" null="false" /> 

     <index alias="internalKey" name="internalKey" primary="false" unique="true" type="BTREE" > 
      <column key="internalKey" length="" collation="A" null="false" /> 
     </index> 

     <aggregate alias="Resource" class="modResource" local="internalKey" foreign="id" cardinality="one" owner="foreign"/> 

    </object> 
</model> 

내가 사용하여 테스트 해요 : 내가 얻을

$resource = $modx->getObject('modResource', 11112); 
echo $resource->get('pagetitle'); //test I have the resource 
$data = $resource->getOne('ResourceData'); 

오류는 다음과 같습니다

수는 없습니다 getOne : 별명에 대한 외래 키 정의하지 ResourceData에는 발견. modDocument 관계 별칭을 사용 :에 ParentClass가에 대한 외래 키 정의 ResourceData에는

표는 패키지가 modx 확장 패키지에 등록되어, &에 데이터가 존재하지 않습니다. 나는 스키마를 여러 번 번복했습니다. & 그것이 옳았습니다.

이 오류의 원인은 무엇입니까?

답변

0

$ modx-> getObject에서 올바른 객체 클래스를 사용해야합니다. 그렇지 않으면 확장 객체 데이터와 관계를 알지 못하는 modResource 객체를 얻게됩니다.

$resource = $modx->getObject('extResource', 11112); 
+0

extResource를 사용하여 정확히 동일한 오류가 발생합니다. –

+0

스키마를 다시 구문 분석 했습니까? – Jako

0

는로드중인 자원은 class_key 필드 extResource로 설정합니까? 이는 올바른 리소스 객체 클래스를로드하는 데 필요합니다.