我想在单击按钮时更新查找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 。 有谁知道如何解决这个问题。谢谢你提前。
答案 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();
}