以嵌入的形式保留所有实体

时间:2013-10-01 10:23:34

标签: javascript php forms symfony

我有两节课:成绩和假期。

成绩可以包含零,一个或多个假期。

所以我的表格看起来像这样:

enter image description here

我可以使用一些Javascript添加或删除假期。

问题出在我的控制器上,当我收到请求时,只有最后一个假期(图片中的“第二个”,未收到“1st”)。

enter image description here

有人知道他们为什么不是全部被送去?

我的课程:

-Grade:

class Grade {

/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @ORM\Column(type="string", length=50)
 * @Assert\NotBlank
 */
protected $name;

/**
 * @Gedmo\Slug(fields={"name"}, updatable=false)
 * @ORM\Column(length=50, unique=true)
 */
protected $slug;

/**
* @ORM\ManyToOne(targetEntity="Ent\HomeBundle\Entity\Campus", inversedBy="grades")
* @ORM\JoinColumn(onDelete="CASCADE")
* @Assert\NotBlank
* @Exclude
**/
protected $campus;

/**
* @ORM\OneToMany(targetEntity="\Ent\TimeBundle\Entity\Course", mappedBy="grade")
* @Assert\NotBlank
* @Exclude
**/
protected $courses;

/**
* @ORM\ManyToOne(targetEntity="\Ent\HomeBundle\Entity\School", inversedBy="grades")
* @Assert\NotBlank
* @Exclude
**/
protected $school;

/**
* @ORM\OneToMany(targetEntity="\Ent\TimeBundle\Entity\Alert", mappedBy="grade")
* @Exclude
**/
protected $alerts;

/**
 * @ORM\ManyToMany(targetEntity="\Ent\TimeBundle\Entity\Holiday", inversedBy="grades", cascade={"persist"})
 * @ORM\JoinTable(name="grade_holiday",
 *  joinColumns={@ORM\JoinColumn(name="grade_id", referencedColumnName="id")},
 *  inverseJoinColumns={@ORM\JoinColumn(name="holiday_id", referencedColumnName="id")}
 * )
 */
protected $holidays;

public function __toString() {
    return $this->name;
}

public function __construct() {
    $this->courses = new \Doctrine\Common\Collections\ArrayCollection();
    $this->alerts = new \Doctrine\Common\Collections\ArrayCollection();
    $this->holidays = new \Doctrine\Common\Collections\ArrayCollection();
}

/**
 * Get id
 *
 * @return integer
 */
public function getId() {
    return $this->id;
}

/**
 * Set name
 *
 * @param string $name
 * @return Grade
 */
public function setName($name) {
    $this->name = $name;

    return $this;
}

/**
 * Get name
 *
 * @return string
 */
public function getName() {
    return $this->name;
}

/**
 * Set slug
 *
 * @param string $slug
 * @return Grade
 */
public function setSlug($slug) {
    $this->slug = $slug;

    return $this;
}

/**
 * Get slug
 *
 * @return string
 */
public function getSlug() {
    return $this->slug;
}

/**
 * Set campus
 *
 * @param \Ent\HomeBundle\Entity\Campus $campus
 * @return Grade
 */
public function setCampus(\Ent\HomeBundle\Entity\Campus $campus = null) {
    $this->campus = $campus;

    return $this;
}

/**
 * Get campus
 *
 * @return \Ent\HomeBundle\Entity\Campus
 */
public function getCampus() {
    return $this->campus;
}

/**
 * Add courses
 *
 * @param \Ent\TimeBundle\Entity\Course $courses
 * @return Grade
 */
public function addCourse(\Ent\TimeBundle\Entity\Course $courses) {
    $this->courses[] = $courses;

    return $this;
}

/**
 * Remove courses
 *
 * @param \Ent\TimeBundle\Entity\Course $courses
 */
public function removeCourse(\Ent\TimeBundle\Entity\Course $courses) {
    $this->courses->removeElement($courses);
}

/**
 * Get courses
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function getCourses() {
    return $this->courses;
}

/**
 * Set school
 *
 * @param \Ent\HomeBundle\Entity\School $school
 * @return Grade
 */
public function setSchool(\Ent\HomeBundle\Entity\School $school = null) {
    $this->school = $school;

    return $this;
}

/**
 * Get school
 *
 * @return \Ent\HomeBundle\Entity\School
 */
public function getSchool() {
    return $this->school;
}

/**
 * Add alerts
 *
 * @param \Ent\TimeBundle\Entity\Alert $alerts
 * @return Grade
 */
public function addAlert(\Ent\TimeBundle\Entity\Alert $alerts) {
    $this->alerts[] = $alerts;

    return $this;
}

/**
 * Remove alerts
 *
 * @param \Ent\TimeBundle\Entity\Alert $alerts
 */
public function removeAlert(\Ent\TimeBundle\Entity\Alert $alerts) {
    $this->alerts->removeElement($alerts);
}

/**
 * Get alerts
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function getAlerts() {
    return $this->alerts;
}

/**
 * Add holiday
 *
 * @param \Ent\TimeBundle\Entity\Holiday $holiday
 * @return Grade
 */
public function addHoliday(\Ent\TimeBundle\Entity\Holiday $holiday) {
    $this->holidays[] = $holiday;

    return $this;
}

/**
 * Remove holidays
 *
 * @param \Ent\TimeBundle\Entity\Holiday $holidays
 */
public function removeHoliday(\Ent\TimeBundle\Entity\Holiday $holidays) {
    $this->holidays->removeElement($holidays);
}

/**
 * Get holidays
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function getHolidays()
{
    return $this->holidays;
}

/**
 * Set holidays
 *
 * @param \Doctrine\Common\Collections\ArrayCollection $holidays
 * @return Grade
 */
public function setHolidays(\Doctrine\Common\Collections\ArrayCollection $holidays) {

    $this->holidays = $holidays;

    return $this;
}

}

-Holiday

class Holiday {

/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @ORM\Column(type="string", length=50, unique=true)
 * @Assert\NotBlank
 */
protected $name;

/**
 * @Gedmo\Slug(fields={"name"}, updatable=false)
 * @ORM\Column(length=50, unique=true)
 */
protected $slug;

/**
* @ORM\ManyToMany(targetEntity="\Ent\UserBundle\Entity\Grade", mappedBy="holidays", cascade={"persist"})
**/
protected $grades;

/**
* @ORM\Column(type="date")
* @Assert\NotBlank
**/
protected $begin;

/**
* @ORM\Column(type="date", nullable=true)
**/
protected $end;

public function __construct() {
    $this->grades = new \Doctrine\Common\Collections\ArrayCollection();
}

public function __toString() {
    return $this->name;
}

/**
 * Get id
 *
 * @return integer
 */
public function getId() {
    return $this->id;
}

/**
 * Set begin
 *
 * @param \DateTime $begin
 * @return Holiday
 */
public function setBegin($begin) {
    $this->begin = $begin;

    return $this;
}

/**
 * Get begin
 *
 * @return \DateTime
 */
public function getBegin() {
    return $this->begin;
}

/**
 * Set end
 *
 * @param \DateTime $end
 * @return Holiday
 */
public function setEnd($end) {
    $this->end = $end;

    return $this;
}

/**
 * Get end
 *
 * @return \DateTime
 */
public function getEnd() {
    return $this->end;
}

/**
 * Set name
 *
 * @param string $name
 * @return Holiday
 */
public function setName($name) {
    $this->name = $name;

    return $this;
}

/**
 * Get name
 *
 * @return string
 */
public function getName() {
    return $this->name;
}

/**
 * Set slug
 *
 * @param string $slug
 * @return Holiday
 */
public function setSlug($slug) {
    $this->slug = $slug;

    return $this;
}

/**
 * Get slug
 *
 * @return string
 */
public function getSlug() {
    return $this->slug;
}

/**
 * Add grades
 *
 * @param \Ent\UserBundle\Entity\Grade $grades
 * @return Holiday
 */
public function addGrade(\Ent\UserBundle\Entity\Grade $grades) {
    $this->grades[] = $grades;

    return $this;
}

/**
 * Remove grades
 *
 * @param \Ent\UserBundle\Entity\Grade $grades
 */
public function removeGrade(\Ent\UserBundle\Entity\Grade $grades) {
    $this->grades->removeElement($grades);
}

/**
 * Get grades
 *
 * @return \Doctrine\Common\Collections\Collection
 */
public function getGrades() {
    return $this->grades;
}

/**
* Set grades
*
* @param \Ent\UserBundle\Entity\Grade $grades
*/
public function setGrades(\Ent\UserBundle\Entity\Grade $grades) {

    $this->grades = $grades;
}
}

0 个答案:

没有答案