【发布时间】:2016-11-18 00:51:09
【问题描述】:
当我使用Model::find() 时,响应是模型的结果集,但是当我添加columns 参数来限制返回的列时,响应是行的结果集。
例子:
// Resultset of Models
$users = \Models\Users\Users::find();
// Resultset of Rows
$users = \Models\Users\Users::find([
'columns' => 'id, email'
]);
这让我无法调用模型方法。有没有办法在 ::find() 方法中有列限制的模型结果集?我不确定,但这似乎是错误,因为 Phalcon 文档说:
虽然 findFirst() 直接返回被调用类的实例(当有要返回的数据时),但 find() 方法返回一个 Phalcon\Mvc\Model\Resultset\Simple。
并且在使用columns参数时,这条规则也没有例外。
我还要注意 ::find() 的其他参数,例如 condition、order、bind 等都可以正常工作(返回模型)。
Phalcon 1.3.4
【问题讨论】:
-
选择特定列时,您将始终获得
Resultset of Rows,因为Phalcon无法返回您的完整Users模型结构,因此它不会被“识别”为Users对象。