我尝试从User Entity获取数据库ID值。
$id = $this->getDoctrine()->getRepository('MyappUserBundle:User')->findByUsername($username);
我明白了:
Array
(
[0] => MyApp\UserBundle\Entity\User Object
(
[id:protected] => 1
[age:protected] => 22
[city:protected] =>
[state:protected] =>
[sex:protected] =>
[avatar:protected] => 99small-man-dancing-with-cat.jpg
[username:protected] => yeps
etc...
我有疑问:
如何从此对象获取id值?
答案 0 :(得分:1)
findByX
返回一个数组,其中findOneByX
将返回单个对象。
在您搜索特定用户名时,会发送更多内容以使用findOneByX
,然后您可以从返回id
中获取User
,例如..
$user = $this->getDoctrine()
->getRepository('MyappUserBundle:User')
->findOneByUsername($username)
;
$id = $user->getId();
添加空检查也没有意义,因为没有找到像..
的用户if (null === $user) {
throw new \Exception(sprintf('User with username "%s" not found', $username));
}
$id = $user->getId();
答案 1 :(得分:0)
" findByUsername"方法返回一个User对象,所以为了获取用户id(假设你的用户实体中已经有一个" getId"公共函数),你必须做这样的事情:
$user = $this->getDoctrine()->getRepository('MyappUserBundle:User')->findByUsername($username);
$userId = $user->getId();