It's not always necessary to save all ORM instances to database right away, for example when something needs to be previewed and could only be saved to database at a later time. The ORM seems to have some issues with this. The related records don't really work at all if they haven't been saved to database.
Example code:
$parent = new TheParent();
$parent->name = 'The parent';
$child = new Child();
$child->name = 'test';
$parent->children = [$child];
var_dump($parent->children->getFirst());
var_dump(count($parent->children));
var_dump($parent->children->toArray());
Output:
bool(false)
int(0)
array(0) {
}
Related thread with setup code: https://forum.phalcon.io/discussion/2007/two-orm-issues
Whatever way you look at it, it's simply not right.