2017-09-20 9 views
0

J'essaie d'étendre l'objet modresource mod_source, mais je continue à recevoir des erreurs & Je n'arrive pas à comprendre pourquoi. C'est lié au schéma (je pense) mais tout semble correct.Extension des erreurs de schéma Modx modResource

Schéma:

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

Je teste à l'aide:

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

Les erreurs que je reçois sont:

Impossible getOne: définition de clé étrangère pour alias resourceData pas trouvé. Aucune définition de clé étrangère pour parentClass: modDocument utilisant alias relation: ResourceData

Le tableau existe & contient des données, le paquet est enregistré dans les packages d'extension modx. J'ai été sur le schéma plusieurs fois & il semble correct.

Qu'est-ce qui cause ces erreurs?

Répondre

0

Vous devez utiliser la classe d'objets de droite dans $ modx-> getObject. Sinon, vous obtiendrez un objet modResource, qui ne connaît pas les données et la relation de l'objet étendu.

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

Je reçois exactement la même erreur en utilisant extResource. –

+0

Avez-vous encore analysé le schéma? – Jako

0

La ressource que vous chargez ont son champ class_key mis à extResource? C'est nécessaire pour charger la bonne classe d'objets ressources.