Kohana ORM只发现了第一张唱片?

时间:2012-09-06 19:24:13

标签: php orm kohana

我在Kohana使用ORM,我希望获得一些id = 2的记录,但是当我使用时:

$user = ORM::factory('user');
$user->find(2);
echo $user->name;

它的结果总是显示表users中第一条记录的值,它有什么不对吗?

3 个答案:

答案 0 :(得分:5)

根据代码,find()不期望参数:

  

https://github.com/kohana/orm/blob/3.2/master/classes/kohana/orm.php#L894

和每个文档:

  

http://kohanaframework.org/3.2/guide/api/ORM#find

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表示尝试根据主键找到项目。