2017-09-20 1 views
0

Ich versuche, das modx modresource-Objekt zu erweitern, aber immer wieder Fehler & Ich kann nicht herausfinden, warum. Es hängt mit dem Schema zusammen (denke ich), aber alles sieht korrekt aus.Erweitern Modx modResource-Schema Fehler

Schema:

<?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> 

Ich teste es mit:

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

Die Fehler, die ich bekommen sind:

konnte nicht getOne: Fremdschlüsseldefinition für alias Resource nicht gefunden. Keine Fremdschlüsseldefinition für Parent: modDocument Verwendung Beziehung alias: Resource

die Tabelle vorhanden & Daten hat, wird das Paket in den MODx Erweiterungspaketen registriert. Ich habe über das Schema viele Male gewesen & es sieht richtig aus.

Was verursacht diese Fehler?

Antwort

0

Sie müssen die richtige Objektklasse in $ modx-> getObject verwenden. Andernfalls erhalten Sie ein modResource-Objekt, das die erweiterten Objektdaten und die Beziehung nicht kennt.

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

Ich bekomme genau den gleichen Fehler mit extResource. –

+0

Haben Sie das Schema erneut analysiert? – Jako

0

Ist die Ressource, die Sie geladen werden, haben ihre class_key Feld extResource eingestellt? Dies ist erforderlich, damit die richtige Ressourcenobjektklasse geladen wird.