0
하나의 컨트롤러에서 삽입/업데이트를 해결하고 싶습니다. 이건 내 코드입니다 : (if(!$check)
사실 켠 후) 지금은Symfony2 및 업데이트 항목
public function setOwnershipAction(Request $request) {
$session = $this->get('security.context')->getToken()->getUser();
$em = $this->getDoctrine()->getManager();
$game = $em->getRepository('GameShelfGamesBundle:Game')->find($request->request->get('hash'));
$user = $em->getRepository('GameShelfUsersBundle:User')->find($session->getId());
$typo = $em->getRepository('GameShelfUsersBundle:OwnState')->find($request->request->get('setownstate')['id']);
$plat = $em->getRepository('GameShelfGamesBundle:Platforms')->find($request->request->get('platformown')['id']);
$check = $em->getRepository('GameShelfUsersBundle:Own')->findBy(array(
'user' => $user,
'game' => $game
));
if(!$check) {
$own = new Own;
$own->setGame($game);
$own->setUser($user);
$own->setTypo($typo);
$own->setPlatforms($plat);
$own->setUpdated(date("Y-m-d H:i:s"));
$em->persist($own);
$em->flush();
} else {
$check->setTypo($typo);
$em->flush();
}
}
삽입, 작동하지만 else
후에는 클릭하지 않습니다. 내 오류는 Fatal error: Call to a member function setTypo() on a non-object
입니다.
findBy는 배열을 반환합니다. 하나의 객체 만 사용하려는 경우 : findOneBy – Cyprian