1
一個簡單的商店。用戶在他的餘額賬戶中有錢,當他購買某物時,需要根據購物車的總和來減少餘額。如果付款成功,我有一個重定向的操作。如果是我要減少的平衡是這樣的:Symfony2從數據庫查詢特定值
/**
* @Route("/successfull", name="successfull_purchase")
* @Template("MediaparkLtUserBundle:User:paymentConfirmed.html.twig")
*/
public function successfullPurchaseAction(Request $request) {
$currentUser = $this->getCurrentUser(); // logged users id
$em = $this->getEntityManager();
$user = $em->getRepository('MediaparkLtUserBundle:User')->find($currentUser);
$pay = $em->getRepository('MediaparkLtUserBundle:AccountMovement')->findOneBy(array('user'=>$currentUser));
$sum = $pay->getAmount();
$balance = $user->getNonpayableFunds();
$newBalance = $balance - $sum;
$user->setNonpayableFunds($newBalance);
$em->persist($user);
$em->flush();
return array('user' => $user, 'pay'=> $pay);
}
正如你可以看到即時查詢兩個表。在用戶表中即時獲取當前用戶。在AccountMovement中,我獲得了基於該用戶的運動。
所以我想在特定的時間獲得金額,但我總是得到第一次購買。
例如:
AccountMovement表:
id-1
user_id - 5
amount - 50.00
id-2
user_id - 5
amount - 5.00
與我查詢我總是第一個輸入,whitch是50.00。我需要得到最後一個(或當前輸入)。我怎樣才能做到這一點?是否有可能這樣做:
$pay = $em->getRepository('MediaparkLtUserBundle:AccountMovement')->findOneBy(array('user'=>$currentUser, 'DESC')); (to get the last input)??
任何想法?