我在Kohana中使用ORM,我想获得一些id为2的记录,但当我使用时:
$user = ORM::factory('user');
$user->find(2);
echo $user->name;
结果总是给我看users
表中第一条记录的值,这有什么问题?
根据代码,find()
不需要参数:
https://github.com/kohana/orm/blob/3.2/master/classes/kohana/orm.php#L894
根据文件:
http://kohanaframework.org/3.2/guide/api/ORM#find
而CCD_ 3只是从数据库中加载第一条记录。为了避免这种情况,只需使用:
$user = ORM::factory('user');
$user = $user->where('id', '=', 2)->find();
echo $user->name;
请测试一下,因为我已经很久没有使用Kohana了。
find()
不需要参数。
尝试在ORM::factory
调用中使用id:
$user = ORM::factory('user', 2);
您是否尝试设置ORM对象的主键?
受保护的$_primary_key
http://kohanaframework.org/3.0/guide/api/ORM#find指示find尝试基于主键来定位项目。