alejosv
(Alejandro Benavides)
1
I’m doing a simple query
$query = Model::find()->select(['field1', 'field2'])->all();
Why if I doing the query like this:
$query = Model::find();
$query->select(['field1', 'field2']);
$query->all();
Why result not is same, I mean, the first query return the sql result, the second return a ActiveQuery Object whithout query result, why happend this?
softark
(Softark)
2
Hi @alejosv,
In the above, $query
is not a query object, but a query result of ActiveRecord objects.
So you should have written it like this:
$models = Model::find()->select(['field1', 'field2'])->all();
In the above, $query
is a query object, but you’ve forgot to populate a variable with the query result.
$query = Model::find();
$query->select(['field1', 'field2']);
$models = $query->all();
Note that $query
is still a query object after retrieving the result with all()
.
alejosv
(Alejandro Benavides)
3
Hi @softark thanks, now is more clear for me