我正在开发一个php项目,但我遇到了数据库问题,我使用这段代码从数据库中获取数据:
public function getSeenAction(Request $request , $notificationId)
{
$sessionId = $request->headers->get('SessionID');
if( $sessionId == null )
{
//return new Response("Unauthorized",401);
}
$notificationRepo = $this->getDoctrine()->getRepository('MegasoftEntangleBundle:Notification');
$notification = $notificationRepo->findOneById($notificationId);
if($notification == null)
{
return new Response("Notification not found" ,404);
}
$seen = $notification->getSeen();
$response = new JsonResponse();
$response->setdata(array('seen'=>$seen));
$response->setStatusCode(200);
return $response;
}
我尝试了与其他表相同的代码并且它有效,但每当我从Notification
表中检索数据时,它总是给出null,尽管该表包含数据。
答案 0 :(得分:0)
$notificationRepo = $this->getDoctrine()->getRepository('MegasoftEntangleBundle:Notification');
$notification = $notificationRepo->findAll();
var_dump(notification);
这段代码会给你一些回报吗?可能你NotificationRepository.php
的代码不好,你能把它戴上吗?
答案 1 :(得分:0)
如果您只是想通过Id找到记录,请尝试使用find
代替findOneById
另一方面,如果要使用findOneBy
,则标准的传递参数应为数组。
$result = $notificationRepo->find($notificationId);
或者
$result = $notificationRepo->findOneBy(array('id' => $notificationId));
或者
确保您的NotificationRepository.php文件中有findOneById
的正确代码
然后你可以检查
if (!empty($result)) { ... }