单击按钮时获取UserId

时间:2015-08-05 12:06:36

标签: php symfony doctrine-orm

我想在单击按钮时更新查找UserId。

例如,假设用户名“Dell”具有“UserId”“111”,那么当点击该按钮时应选择用户并进行进一步操作。

这就是我使用“$ _POST”的原因,所以当用户点击按钮时,它会返回“UserId”。

这就是我试图获得“UserId”的方式。

$usrInfo = $this->getDoctrine()
                       ->getRepository('myBundle:UserStats')
                       ->findByUserId($_POST);  

但我认为我做错了,因为当用户点击按钮时它不起作用。

基于UserId,我将更新诸如---

之类的信息

$ usrst = new UserStats();

    $providerStats->setOn(FALSE);

    $em = $this->getDoctrine()->getManager();
    $em->persist($usrInfo);
    $em->flush();

因此,主要目的是在点击按钮时找到 UserId 。 有谁知道如何解决这个问题。谢谢你提前。

3 个答案:

答案 0 :(得分:1)

你可以这样试试(我假设你正在使用表单组件,如果你发布你的表单会更好):

...

public function someAction(Request $request)
{
    ....
    $form = $this->createForm(TYPE, NULL_OR_DATA, OPTIONS);
    $form->handleRequest($request);
    if ($form->isValid()) {
        $username = $form->get('USERNAME_FIELD')->getData();

        $user = (SOMESERVICE_OR_REPOSITORY)->getUserByUsername($username);

        // do something here with your user

        // Flush the changes

        ....
    }

    ....
}

答案 1 :(得分:0)

使用Symfony 2,你不应该使用php $ _POST变量而是使用$ request

示例,如果您的字段名称是“UserId”:

$request = $this->getRequest();

if ($request->getMethod() == 'POST') {
    $userId= $request->request->get('UserId'); 

    $usrname = $this->getDoctrine()
                           ->getRepository('myBundle:UserStats')
                           ->findByUserId($userId);  
}

答案 2 :(得分:0)

我已经在Symfony2中提供了更新记录的代码:

$request = $this->get( 'request' );
$em = $this->getDoctrine()->getManager();
if ( $request->getMethod() == 'POST' ) {
   $user_id = $request->request->get( 'user_id' );
   $obj = $em->getRepository( 'myBundle:UserStats' )->find( $user_id );
   $em->persist($obj);
   $em->flush();
}