Symfony에서 일대 다 관계를 맺고 있습니다. 그래서 여러 사용자를위한 이벤트를 만들기위한 자신 만의 교대 관리를 구축하고 있습니다.사용자 ID가 데이터베이스에 저장되지 않습니다. null
메신저가 데이터베이스에 이벤트를 저장하는 중 im은 user_id가 null이고 로그인 한 사용자가 저장하지 않으므로 여러 사용자가 이벤트를 저장하고 싶습니다.
그래서 이벤트를 저장하려는 사용자의 user_id를 저장하지 않을 것입니다. var_dump에 해당 사용자의 사용자 ID를 얻고 있지만 내 데이터베이스에 null이 저장되는 시점을 저장합니다. 누구든지 그 문제를 해결하는 방법을 알고 그 문제는 무엇입니까?
클래스 사용자 :
class User implements AdvancedUserInterface, \Serializable
{
/**
* @ORM\OneToMany(targetEntity="App\ShiftBundle\Entity\Shift", mappedBy="users", cascade={"all"})
*/
private $shifts;
public function __construct()
{
$this->isActive = true;
$this->isBlocked = false;
$this->shifts = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add shifts
*
* @param \App\ShiftBundle\Entity\Shift $shifts
* @return User
*/
public function addShift(\App\ShiftBundle\Entity\Shift $shifts)
{
$this->shifts[] = $shifts;
$shifts->setUsers($this);
return $this;
}
/**
* Remove shifts
*
* @param \App\ShiftBundle\Entity\Shift $shifts
*/
public function removeShift(\App\ShiftBundle\Entity\Shift $shifts)
{
$this->shifts->removeElement($shifts);
}
/**
* Get shifts
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getShifts()
{
return $this->shifts;
}
}
클래스 이동 당신은 엔티티 ID를 할당해서는 안됩니다
public function createShiftTimeAction(Request $request)
{
$content = $request->getContent();
$json = json_decode($content);
$repository = $this->getDoctrine()->getRepository('AppShiftBundle:Shift');
$shift = new Shift();
var_dump($json->user_id);
$shift->setDay($json->day);
$shift->setMonth($json->month);
$shift->setYear($json->year);
$shift->setTimeFrom($json->time_from);
$shift->setTimeTo($json->time_to);
$shift->setUserId($json->user_id);
$em = $this->getDoctrine()->getManager();
$em->persist($shift);
$em->flush();
return new JsonResponse($json);
}
내가 잘못했을 수도 있지만 문제 해결을 위해 스칼라와 객체 기반 방법을 혼합 한 것 같습니다. 'setter '에서'$ shifts-> setUser ($ this)'를하지만,'$ shift-> setUserId ($ json-> user_id)'액션에서. 이 두 가지를 모두 갖고있는 특별한 이유가 있습니까? –
죄송합니다. 사용자 클래스에서 해당 항목을 삭제하는 것을 잊어 버렸습니다. 내가 var_dump 할 때 나는 컨트롤러에서 user_id지고 있지만 데이터베이스에 저장되지 않습니다. 그리고 나는 로그인 한 사용자의 user_id에 id를 저장하지 않을 것입니다, 나는 선택한 사용자의 user_id에 id를 저장하고 싶습니다. – lorenos