Hello, I wonder if someone could help me with a problem. I’m trying to use getCollectionGraph and keep getting an error, which I don’t understand. Basically, I am trying to show a filename from an Images table, related to an item in an item table. My schema is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<model package="items" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1">
<object class="Category" table="category" extends="xPDOSimpleObject">
<field key="category" dbtype="varchar" precision="50" phptype="string" null="false" />
<composite alias="Item" class="Item" local="id" foreign="category_id" cardinality="many" owner="local" />
</object>
<object class="Images" table="images" extends="xPDOSimpleObject">
<field key="item_id" dbtype="int" precision="11" phptype="integer" null="false" />
<field key="filename" dbtype="varchar" precision="50" phptype="string" null="false" />
<field key="caption" dbtype="varchar" precision="255" phptype="string" null="true" />
<aggregate alias="Item" class="Item" local="item_id" foreign="id" cardinality="one" owner="foreign" />
</object>
<object class="Item" table="item" extends="xPDOSimpleObject">
<field key="code" dbtype="varchar" precision="50" phptype="string" null="false" />
<field key="description" dbtype="text" phptype="string" null="false" />
<field key="category_id" dbtype="int" precision="11" phptype="integer" null="false" />
<field key="featured" dbtype="varchar" precision="10" phptype="string" null="false" />
<aggregate alias="Category" class="Category" local="category_id" foreign="id" cardinality="one" owner="foreign" />
<composite alias="Images" class="Images" local="id" foreign="item_id" cardinality="many" owner="local" />
</object>
</model>
My snippet is
<?php
$path = MODX_CORE_PATH . 'components/items/';
$modx->setOption(xPDO::OPT_HYDRATE_RELATED_OBJECTS, true);
$modx->addPackage('items',$path . 'model/','brox_');
$c = $modx->newQuery('Item');
$c->sortby('code','DESC');
$c->where(array(category_id => $_GET['category_id']));
$items = $modx->getCollectionGraph('Item', '{"Images":{}}', $c );
foreach($items as $item) {
$itemArray = $item->toArray();
$imageArray = $item->Images->toArray();
$resultArray = $itemArray + $imageArray;
$output .= $modx->getChunk($tpl,$resultArray);
}
return $output;
The error is see is:
Fatal error: Call to a member function toArray() on a non-object in /home/johnwilk/public_html/core/cache/elements/modsnippet/48.include.cache.php on line 20
Can anyone point me in the right direction please?