I am trying to write an application using a mongo DB, and have hit a brick wall.
I have written some basic relationship handling functionality which uses the same syntax (run from initialize()
) as the model relationships but simply adds a named array of relationship information.
public function __call( $name, $args = [] ){
/**
* Add in the relationships.
*/
if( in_array( $name, [ 'hasOne', 'hasMany', 'belongsTo' ] ) ){
$key = ( isset( $args[3]['alias'] ) ) ? $args[3]['alias'] : strtolower( $args[1] ) ;
$this->_relationships[$key] = [
'ref' => $args[0],
'model' => $args[1],
'modelRef' => $args[2],
'options' => $args[3],
'type' => $name
];
}
}
This is adding the raltionships correctly, (I am stepping through the code in X-DEBUG) but when I inspect the results from a call like this
$object = Object::findById( $object_id );
The initialization code has run, but the object does not have the relationships. The relationships ARE however in the object in
$object->_modelsManager->lastInitialized
Does anyone have any idea what I am doing wrong, or is it a bug in phalcon?