Symfony 未定义的偏移量:0。条令与本机sql
我有一个小问题,我想打印用户的id,但我有一个错误:“未定义的offest:0”。这是我的密码:Symfony 未定义的偏移量:0。条令与本机sql,symfony,doctrine-orm,fosuserbundle,Symfony,Doctrine Orm,Fosuserbundle,我有一个小问题,我想打印用户的id,但我有一个错误:“未定义的offest:0”。这是我的密码: $rsm = new ResultSetMapping(); $em = $this->getDoctrine()->getManager(); $user= $this->get('security.context')->getToken()->getUser(); $query = $em->createNativeQuery('SELECT id FROM
$rsm = new ResultSetMapping();
$em = $this->getDoctrine()->getManager();
$user= $this->get('security.context')->getToken()->getUser();
$query = $em->createNativeQuery('SELECT id FROM fos_user WHERE username_canonical = ?', $rsm);
$query->setParameter(1, $user);
$users = $query->getResult();
echo $users[0]['id'];
有人知道怎么回事吗?更改字符串:
$query->setParameter(1, $user);
到
EntityResult
和FieldResult
添加到$rsm
$rsm = new ResultSetMapping();
$rsm->addEntityResult('App\UserBundle\Entity\User', 'u');
$rsm->addFieldResult('u', 'id', 'id');
setParameter
$user到$user->getUsernameCononical()强>foreach($users as $user)
{
echo $user->getId();
}
错误是因为您正在使用用户对象($user)作为查询参数。查询不返回任何用户,您尝试获取未定义的偏移量。如果您已经从安全上下文中获得了用户对象,则不需要在数据库中找到它来获取id。一个简单的
echo$user->getId()
应该会告诉您需要什么。
foreach($users as $user)
{
echo $user->getId();
}