如何检查更新实体(表行)是否成功并返回true / false响应?

时间:2019-01-18 13:20:21

标签: php symfony symfony-3.4

嗯..这是方法:

public function likeUnlikeAction($category, $id, $type)
{
    $status = false;
    $message = '';

    $em = $this->getDoctrine()->getManager();
    $article = $em->getRepository("AppBundle:Article")->find($id);

    if ($type == 'like') {
        $article->setLikes($article->getLikes() + 1);
    } else {
        $article->setLikes($article->getLikes() - 1);
    }

    $em->persist($article);
    $em->flush();

    $likes = $article->getLikes();

    $response = array(
        'status' => $status,
        'message' => $message,
        'likes' => $likes
    );

    return new JsonResponse($response);

}

如何检查一切是否正常,并在$message$status返回始终为null时更新$em->persist()$em->flush()

1 个答案:

答案 0 :(得分:1)

如果您能收到文章,并且您的安装程序/设计者都能正常工作,则不必担心$em->persist()$em->flush()

找不到文章时,您可以设置消息和状态。另外,您可以比较更新前后的“喜欢”数,以查看是否已应用更新。

From symfony docs:请注意,不需要调用$ em-> persist($ product)。回想一下,此方法只是告诉Doctrine管理或“监视” $ product对象。在这种情况下,由于您是从Doctrine中获取$ product对象的,因此已经对其进行了管理。