如何处理视图数量

时间:2015-01-21 15:13:39

标签: php symfony doctrine-orm

我有一个实体Agence,其属性为 nbView ,我想在访问者查看配置文件时增加 nbView + 1 。但是现在如果同一个访问者刷新页面,nbView将总是增加+ 1,这不是一个好的行为。

public function viewAction(Agence $agence, $slug, Request $request)
{
    $em = $this->getDoctrine()->getManager();
    //.......
    $agence = $em->getRepository('ProjectAgenceBundle:Agence')->findOneBySlug($slug);

    // incrempent nbView
    $agence->setNbView($agence->getNbView() + 1);
    $em->persist($agence) ;
    $em->flush() ;

    //.................
    return $this->render('ProjectFrontendBundle:Agence:agence-detail-view.html.twig',
    array(
        'agence' => $agence,
        'travel' => $travel,
        'contact_agence_form' => $form_contact->createView(),
    ));
}

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

作为一种方式,您可以添加其他实体UserViewedAgence (ID, 用户身份, user_agence_id) 在更新已查看的年龄计数器之前,您必须检查用户是否已查看过该年龄