我在 Kohana 中使用 ORM,我想获得一些 id = 2 的记录,但是当我使用时:
$user = ORM::factory('user');
$user->find(2);
echo $user->name;
结果总是向我显示 table 中第一条记录的值,users
它有什么问题?
根据代码,find()
不需要参数:
https://github.com/kohana/orm/blob/3.2/master/classes/kohana/orm.php#L894
并根据文档:
并且find()
仅从数据库加载第一条记录。为避免这种情况,只需使用:
$user = ORM::factory('user');
$user = $user->where('id', '=', 2)->find();
echo $user->name;
请测试一下,因为我已经很长时间没有使用Kohana了。
As @Tadeck says, find()
doesn't expect arguments.
Try using the id in the ORM::factory
call:
$user = ORM::factory('user', 2);
您是否尝试过设置 ORM 对象的主键?
受保护的 $_primary_key
http://kohanaframework.org/3.0/guide/api/ORM#find表示 find 尝试根据主键定位项目。