argh - everything looks right ~ no errors thrown anywhere. ere is what I have:
schema:
<?xml version="1.0" encoding="UTF-8"?>
<model package="extuser" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1" >
<object class="extUser" extends="modUser">
<composite alias="UserData" local="id" class="Userdata" foreign="internalKey" cardinality="one" owner="local" />
<composite alias="UserQueries" local="id" class="UserQueries" foreign="internalKey" cardinality="many" owner="local" />
</object>
<object class="UserData" table="user_ext_data" extends="xPDOSimpleObject">
<field key="internalKey" dbtype="int" precision="10" phptype="integer" null="true" />
<field key="location" dbtype="varchar" precision="50" phptype="string" null="true" />
<aggregate alias="extUser" local="internalKey" foreign="id" cardinality="one" owner="foreign" />
</object>
<object class="UserQueries" table="user_queries" extends="xPDOSimpleObject">
<field key="internalKey" dbtype="int" precision="10" phptype="integer" null="false" />
<field key="date" dbtype="time" phptype="string" null="false" />
<field key="query" dbtype="longtext" phptype="string" null="false" />
<aggregate alias="extUser" local="internalKey" foreign="id" cardinality="one" owner="foreign" />
</object>
</model>
Just trying a little test snippet which fails when I try to output the UserData object:
$modx->addPackage('extuser', MODX_CORE_PATH . 'components/extuser/model/');
$user = $modx->getObject('extUser', 2); // where 123 is the id of a user
echo $user->get('username');
$data = $user->getOne('UserData'); // use the alias from the schema
if($data){echo 'got data<br>';}else{echo 'nodata<br>';}
//toArray will print all the extra data, e.g. facebook_url
//return print_r($data->toArray(), true);
and looking at the class map, everything looks good there:
<?php
$xpdo_meta_map['UserData']= array (
'package' => 'extuser',
'version' => '1.1',
'table' => 'user_ext_data',
'extends' => 'xPDOSimpleObject',
'fields' =>
array (
'internalKey' => NULL,
'location' => NULL,
),
'fieldMeta' =>
array (
'internalKey' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => true,
),
'location' =>
array (
'dbtype' => 'varchar',
'precision' => '50',
'phptype' => 'string',
'null' => true,
),
),
'aggregates' =>
array (
'extUser' =>
array (
'local' => 'internalKey',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
);
- yes there is data in the new database tables
- the class key was changed for all users
- no errors in modx or apache logs
Help!