Closed Surt closed 9 years ago
Actually I did that using the table name and it's working. I will try to create a unit test to check it.
I've tried it, Phalcon 2
Failing:
$manufacturers = Loader::fromResultset(
Manufacturer::find(),
[
'Robots.Bugs' => function (QueryBuilder $builder) {
$builder->where('bug.id > 10');
}
]
);
<br /> <b>Fatal error</b>: Uncaught exception 'Phalcon\Mvc\Model\Exception' with message 'Unknown model or alias 'bug' (1), when preparing: SELECT [Bug].* FROM [Bug] WHERE ([robot_id] IN (:phi0:, :phi1:, :phi2:, :phi3:, :phi4:, :phi5:, :phi6:, :phi7:, :phi8:, :phi9:, :phi10:, :phi11:, :phi12:, :phi13:, :phi14:, :phi15:, :phi16:, :phi17:)) AND (bug.id > 10)' in /var/www/html/vendor/stibium/phalcon.eager-loading/src/EagerLoading/EagerLoad.php:203 Stack trace:
0 [internal function]: Phalcon\Mvc\Model\Query->_getQualified(Array)
1 [internal function]: Phalcon\Mvc\Model\Query->_getExpression(Array, true)
2 [internal function]: Phalcon\Mvc\Model\Query->_getExpression(Array, true)
3 [internal function]: Phalcon\Mvc\Model\Query->_getExpression(Array, true)
4 [internal function]: Phalcon\Mvc\Model\Query->_getExpression(Array)
5 [internal function]: Phalcon\Mvc\Model\Query->_prepareSelect()
6 [internal function]: Phalcon\Mvc\Model\Query->parse()
7 /var/www/html/vendor/stibium/phalcon.eager-loading/src/EagerLoading/EagerLoad.php(203): Pha in <b>/var/www/html/vendor/stibium/phalcon.eager-loading/src/EagerLoading/EagerLoad.php</b> on line <b>203</b><br />
Working:
$manufacturers = Loader::fromResultset(
Manufacturer::find(),
[
'Robots.Bugs' => function (QueryBuilder $builder) {
$builder->where('Bug.id > 10');
}
]
);
Of course, you were right. Changed the builder where expression to Bar.
Thanks :+1:
This would not work, assuming 'Bar' as the model class name, and in case of being in a namespace should be 'Namespace\Bar.id'
So
$builder->where('bar.id > 10');
must be$builder->where('Bar.id > 10');
or simply$builder->where('id > 10');
Could you please fix it?
Thanks for contributing.