2

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

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

结果总是向我显示 table 中第一条记录的值,users它有什么问题?

4

3 回答 3

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了。

于 2012-09-06T19:30:33.160 回答
4

As @Tadeck says, find() doesn't expect arguments.

Try using the id in the ORM::factory call:

$user = ORM::factory('user', 2);
于 2012-09-06T19:35:22.347 回答
-1

您是否尝试过设置 ORM 对象的主键?

受保护的 $_primary_key

http://kohanaframework.org/3.0/guide/api/ORM#find表示 find 尝试根据主键定位项目。

于 2012-09-06T19:32:31.877 回答