【发布时间】:2016-05-02 12:51:29
【问题描述】:
这就是我能够使用它的 id 获取用户实体的方式:
$userEntity = $em->getRepository('ModelBundle:User')->find($userId);
有没有办法根据这个 $userEntity 获取上一个和下一个实体?
例如:我获取了 $userEntity 并且它的 id 是 100,现在我想获取以前的实体,而不管它的 id 是 99、80、70 是什么!与下一个实体的情况相同..
我已经可以使用一些 PHP hack 获取下一个和上一个,但是我正在寻找更好的方法..
已编辑: 只是为了澄清我正在寻找面向对象的方法,如下所示:
$userEntity = $em->getRepository('ModelBundle:User')->find($userId);
$previousUserEntity = $userEntity->previous(); //example
$previousUserEntity = $userEntity->next(); //example
我知道 userEntity 不包含任何像 previous() 和 next() 这样的方法,这只是一个示例,如果存在可以帮助以面向对象的方式直接获取下一个和上一个实体的方法!
【问题讨论】:
-
$previousUserEntity = $userEntity->previous();这需要在您的实体中注入实体管理器,不建议这样做。如果你想这样做,你会在这里找到解决方案:stackoverflow.com/a/15556566/2257664stackoverflow.com/q/14684745/2257664 -
确实,我无法在任何地方找到它,所以我必须接受您的回答,因为我使用它而不是我的 :) 谢谢,
-
不客气,就像我链接的答案中写的那样,将实体和数据库逻辑分开会更干净。感谢您更正我的回答!
标签: symfony doctrine-orm doctrine