嗯..这是方法:
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()
?
答案 0 :(得分:1)
如果您能收到文章,并且您的安装程序/设计者都能正常工作,则不必担心$em->persist()
和$em->flush()
找不到文章时,您可以设置消息和状态。另外,您可以比较更新前后的“喜欢”数,以查看是否已应用更新。
From symfony docs:请注意,不需要调用$ em-> persist($ product)。回想一下,此方法只是告诉Doctrine管理或“监视” $ product对象。在这种情况下,由于您是从Doctrine中获取$ product对象的,因此已经对其进行了管理。