我在Kohana使用ORM,我希望获得一些id = 2的记录,但是当我使用时:
$user = ORM::factory('user');
$user->find(2);
echo $user->name;
它的结果总是显示表users
中第一条记录的值,它有什么不对吗?
答案 0 :(得分:5)
根据代码,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了。
答案 1 :(得分:4)
正如@Tadeck所说,find()
不期望参数。
尝试使用ORM::factory
电话中的ID:
$user = ORM::factory('user', 2);
答案 2 :(得分:-1)
您是否尝试过设置ORM对象的主键?
protected $ _primary_key
http://kohanaframework.org/3.0/guide/api/ORM#find表示尝试根据主键找到项目。