在Symfony2中使用docrtrine

时间:2014-04-24 12:13:27

标签: php symfony doctrine

我正在开发一个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,尽管该表包含数据。

2 个答案:

答案 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)) { ... }