I have an ORM optimization problem. Let's say I want to retrieve a RobotsParts object and its associated Robots object with ONLY one query. I don't want arrays, only objects.
I tried to do that, inside a function of the RobotsParts model class:
$part = self::query()
    ->columns('Namespace\Models\RobotsParts.*, Namespace\Models\Robots.*')
    ->join('Namespace\Models\Robots')
    ->where('Namespace\Models\RobotsParts.id = :id:')
    ->bind(array(
        'id' => 1
    ))
    ->execute()
    ->getFirst()
;The following query is executed, which is totally what I want. I simplified it so it's easy to read:
SELECT robotsparts.*, robots.* FROM robotsparts INNER JOIN robots ON robotsparts.robots_id = robots.id WHERE robotsparts.id = 1;My first problem after that, is that I don't get directly a RobotsParts object, but a Phalcon\Mvc\Model\Row object. I managed to obtain a RobotsParts by doing this, is it correct ?
$part = $part['Namespace\Models\RobotsParts'];Anyway, my biggest problem is that when I do that :
$robot = $part->robots;Another query to get the robot is launched, which is totally useless since the associated robot was already joined is the first query.
Am I missing something here? Is there another way to do that (querybuilder, etc.) ? Thank you for your help. By the way, Phalcon is an amazing framework.