Forms 如何将Symfony2中表单的日期字段数据和时间字段数据连接起来,以保存为数据库datetime字段中的datetime数据?

Forms 如何将Symfony2中表单的日期字段数据和时间字段数据连接起来,以保存为数据库datetime字段中的datetime数据?,forms,date,symfony,datetime,time,Forms,Date,Symfony,Datetime,Time,我想知道如何在Symfony2中将表单的日期字段数据和时间字段数据连接起来,以保存为数据库datetime字段中的datetime数据。解释如下: 我想在此屏幕截图中向表单添加两个新的时间字段: 这是表单的代码(以twig和html格式): 这是我与之交易的实体的代码: <?php namespace Ikproj\GroupeBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * eventsgroupe * * @O

我想知道如何在Symfony2中将表单的日期字段数据和时间字段数据连接起来,以保存为数据库datetime字段中的datetime数据。解释如下:

我想在此屏幕截图中向表单添加两个新的时间字段:

这是表单的代码(以twig和html格式):

这是我与之交易的实体的代码:

  <?php

namespace Ikproj\GroupeBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * eventsgroupe
 *
 * @ORM\Table(name="eventsgroupe")
 * @ORM\Entity(repositoryClass="Ikproj\GroupeBundle\Entity\eventsgroupeRepository")
 */
class eventsgroupe 
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     *
     * @var integer 
     * @ORM\ManyToOne(targetEntity="Groupe", inversedBy="eventsgroupe")
     * @ORM\JoinColumn(name="admingroupe_id", referencedColumnName="admingroupe_id", nullable=FALSE)
     * @ORM\Column(name="admingroupe_id", type="string", length=255)
     */
     private $idGroupe;

     /**
     *
     * @var integer 
     * @ORM\ManyToOne(targetEntity="Groupe", inversedBy="eventsgroupe")
     * @ORM\JoinColumn(name="idgroupe", referencedColumnName="id_groupe", nullable=FALSE)
     * @ORM\Column(name="idgroupe", type="string", length=255)
     */
     private $idEventGroupe;


    /**
     * @var string
     *
     * @ORM\Column(name="title", type="string", length=255)
     */
    private $title;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="start", type="datetime")
     */
    private $start;

    /**
     * @var \Date
     */
    private $startdate;

    /**
     * @var \Time
     */
    private $starttime;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="end", type="datetime")
     */
    private $end;

     /**
     * @var \Date
     */
    private $enddate;

    /**
     * @var \Time
     */
    private $endtime;

    /**
     * @var string
     *
     * @ORM\Column(name="location", type="string", length=255)
     */
    private $location;

    /**
     * @var string
     *
     * @ORM\Column(name="description", type="string", length=255)
     */
    private $description;

    /**
     * @var boolean
     *
     * @ORM\Column(name="partager", type="boolean")
     */
    private $partager;


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

    public function getIdGroupe()
    {
        return $this->idGroupe;
    }

    /**
     * Set title
     *
     * @param string $title
     * @return eventsgroupe
     */
    public function setTitle($title)
    {
        $this->title = $title;

        return $this;
    }

    /**
     * Get startdate
     *
     * @return date 
     */
    public function getStartdate()
    {
        return $this->startdate;
    }

    /**
     * Set startdate
     *
     * @param date $startdate
     * @return eventsgroupe
     */
    public function setStartdate($startdate)
    {
        $this->startdate = $startdate;

        return $this;
    }

     /**
     * Get enddate
     *
     * @return date 
     */
    public function getEnddate()
    {
        return $this->enddate;
    }

    /**
     * Set enddate
     *
     * @param date $enddate
     * @return eventsgroupe
     */
    public function setEnddate($enddate)
    {
        $this->enddate = $enddate;

        return $this;
    }

    /**
     * Get starttime
     *
     * @return time 
     */
    public function getStarttime()
    {
        return $this->starttime;
    }

    /**
     * Set starttime
     *
     * @param time $starttime
     * @return eventsgroupe
     */
    public function setStarttime($starttime)
    {
        $this->starttime = $starttime;

        return $this;
    }

    /**
     * Get endttime
     *
     * @return time 
     */
    public function getEndtime()
    {
        return $this->endttime;
    }

    /**
     * Set endtime
     *
     * @param time $endtime
     * @return eventsgroupe
     */
    public function setEndtime($endtime)
    {
        $this->endtime = $endtime;

        return $this;
    }

    /**
     * Set start
     *
     * @param \DateTime $start
     * @return eventsgroupe
     */
    public function setStart($startdate,$starttime)
    {
        //$this->start = $start;
        $this->start.date('yyyy-MM-dd') = $startdate;
        $this->start.time() = $starttime;

        return $this;
    }

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

    /**
     * Set end
     *
     * @param \DateTime $end
     * @return eventsgroupe
     */
    public function setEnd($enddate,$endtime)
    {
        $this->end.date('yyyy-MM-dd') = $enddate;
        $this->end.time() = $endtime;

        return $this;
    }

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

    /**
     * Set location
     *
     * @param string $location
     * @return eventsgroupe
     */
    public function setLocation($location)
    {
        $this->location = $location;

        return $this;
    }

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

    /**
     * Set description
     *
     * @param string $description
     * @return eventsgroupe
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

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

    /**
     * Set partager
     *
     * @param boolean $partager
     * @return eventsgroupe
     */
    public function setPartager($partager)
    {
        $this->partager = $partager;

        return $this;
    }

    /**
     * Get partager
     *
     * @return boolean 
     */
    public function getPartager()
    {
        return $this->partager;
    }
     public function setIdGroupe($idGroupe)
    {
        $this->idGroupe = $idGroupe;

        return $this;
    }

    public function setIdEventGroupe($idEventGroupe)
    {
        $this->idEventGroupe = $idEventGroupe;

        return $this;
    }
    public function getIdEventGroupe()
    {
        return $this->idEventGroupe;
    }

}
还有这个:

/**
 * Get startdate
 *
 * @return date 
 */
public function getStartdate()
{
    return $this->startdate;
}

/**
 * Set startdate
 *
 * @param date $startdate
 * @return eventsgroupe
 */
public function setStartdate($startdate)
{
    $this->startdate = $startdate;

    return $this;
}

 /**
 * Get enddate
 *
 * @return date 
 */
public function getEnddate()
{
    return $this->enddate;
}

/**
 * Set enddate
 *
 * @param date $enddate
 * @return eventsgroupe
 */
public function setEnddate($enddate)
{
    $this->enddate = $enddate;

    return $this;
}

/**
 * Get starttime
 *
 * @return time 
 */
public function getStarttime()
{
    return $this->starttime;
}

/**
 * Set starttime
 *
 * @param time $starttime
 * @return eventsgroupe
 */
public function setStarttime($starttime)
{
    $this->starttime = $starttime;

    return $this;
}

/**
 * Get endttime
 *
 * @return time 
 */
public function getEndtime()
{
    return $this->endttime;
}

/**
 * Set endtime
 *
 * @param time $endtime
 * @return eventsgroupe
 */
public function setEndtime($endtime)
{
    $this->endtime = $endtime;

    return $this;
}

/**
 * Set start
 *
 * @param \DateTime $start
 * @return eventsgroupe
 */
public function setStart($startdate,$starttime)
{
    //$this->start = $start;
    $this->start.date('yyyy-MM-dd') = $startdate;
    $this->start.time() = $starttime;

    return $this;
}

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

/**
 * Set end
 *
 * @param \DateTime $end
 * @return eventsgroupe
 */
public function setEnd($enddate,$endtime)
{
    $this->end.date('yyyy-MM-dd') = $enddate;
    $this->end.time() = $endtime;

    return $this;
}

/**
 * Get end
 *
 * @return \DateTime 
 */
public function getEnd()
{
    return $this->end;
}
问题是,当我运行代码时,表单不会显示,这就是我看到的:


所以我的问题是:我的代码到底出了什么问题???。有人知道吗?

在表单模板中,您可以添加两次starttime,而不是一次starttime和一次endtime。除此之外,我不知道您的控制器逻辑。您应该将getStartTime()的逻辑更改为smth,如下所示:return$this->getStart()->format(“H:m:s”);并将setStart改回setStart(\DateTime$start),因为条令需要以这种方式水合实体。
  <?php

namespace Ikproj\GroupeBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * eventsgroupe
 *
 * @ORM\Table(name="eventsgroupe")
 * @ORM\Entity(repositoryClass="Ikproj\GroupeBundle\Entity\eventsgroupeRepository")
 */
class eventsgroupe 
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     *
     * @var integer 
     * @ORM\ManyToOne(targetEntity="Groupe", inversedBy="eventsgroupe")
     * @ORM\JoinColumn(name="admingroupe_id", referencedColumnName="admingroupe_id", nullable=FALSE)
     * @ORM\Column(name="admingroupe_id", type="string", length=255)
     */
     private $idGroupe;

     /**
     *
     * @var integer 
     * @ORM\ManyToOne(targetEntity="Groupe", inversedBy="eventsgroupe")
     * @ORM\JoinColumn(name="idgroupe", referencedColumnName="id_groupe", nullable=FALSE)
     * @ORM\Column(name="idgroupe", type="string", length=255)
     */
     private $idEventGroupe;


    /**
     * @var string
     *
     * @ORM\Column(name="title", type="string", length=255)
     */
    private $title;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="start", type="datetime")
     */
    private $start;

    /**
     * @var \Date
     */
    private $startdate;

    /**
     * @var \Time
     */
    private $starttime;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="end", type="datetime")
     */
    private $end;

     /**
     * @var \Date
     */
    private $enddate;

    /**
     * @var \Time
     */
    private $endtime;

    /**
     * @var string
     *
     * @ORM\Column(name="location", type="string", length=255)
     */
    private $location;

    /**
     * @var string
     *
     * @ORM\Column(name="description", type="string", length=255)
     */
    private $description;

    /**
     * @var boolean
     *
     * @ORM\Column(name="partager", type="boolean")
     */
    private $partager;


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

    public function getIdGroupe()
    {
        return $this->idGroupe;
    }

    /**
     * Set title
     *
     * @param string $title
     * @return eventsgroupe
     */
    public function setTitle($title)
    {
        $this->title = $title;

        return $this;
    }

    /**
     * Get startdate
     *
     * @return date 
     */
    public function getStartdate()
    {
        return $this->startdate;
    }

    /**
     * Set startdate
     *
     * @param date $startdate
     * @return eventsgroupe
     */
    public function setStartdate($startdate)
    {
        $this->startdate = $startdate;

        return $this;
    }

     /**
     * Get enddate
     *
     * @return date 
     */
    public function getEnddate()
    {
        return $this->enddate;
    }

    /**
     * Set enddate
     *
     * @param date $enddate
     * @return eventsgroupe
     */
    public function setEnddate($enddate)
    {
        $this->enddate = $enddate;

        return $this;
    }

    /**
     * Get starttime
     *
     * @return time 
     */
    public function getStarttime()
    {
        return $this->starttime;
    }

    /**
     * Set starttime
     *
     * @param time $starttime
     * @return eventsgroupe
     */
    public function setStarttime($starttime)
    {
        $this->starttime = $starttime;

        return $this;
    }

    /**
     * Get endttime
     *
     * @return time 
     */
    public function getEndtime()
    {
        return $this->endttime;
    }

    /**
     * Set endtime
     *
     * @param time $endtime
     * @return eventsgroupe
     */
    public function setEndtime($endtime)
    {
        $this->endtime = $endtime;

        return $this;
    }

    /**
     * Set start
     *
     * @param \DateTime $start
     * @return eventsgroupe
     */
    public function setStart($startdate,$starttime)
    {
        //$this->start = $start;
        $this->start.date('yyyy-MM-dd') = $startdate;
        $this->start.time() = $starttime;

        return $this;
    }

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

    /**
     * Set end
     *
     * @param \DateTime $end
     * @return eventsgroupe
     */
    public function setEnd($enddate,$endtime)
    {
        $this->end.date('yyyy-MM-dd') = $enddate;
        $this->end.time() = $endtime;

        return $this;
    }

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

    /**
     * Set location
     *
     * @param string $location
     * @return eventsgroupe
     */
    public function setLocation($location)
    {
        $this->location = $location;

        return $this;
    }

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

    /**
     * Set description
     *
     * @param string $description
     * @return eventsgroupe
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

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

    /**
     * Set partager
     *
     * @param boolean $partager
     * @return eventsgroupe
     */
    public function setPartager($partager)
    {
        $this->partager = $partager;

        return $this;
    }

    /**
     * Get partager
     *
     * @return boolean 
     */
    public function getPartager()
    {
        return $this->partager;
    }
     public function setIdGroupe($idGroupe)
    {
        $this->idGroupe = $idGroupe;

        return $this;
    }

    public function setIdEventGroupe($idEventGroupe)
    {
        $this->idEventGroupe = $idEventGroupe;

        return $this;
    }
    public function getIdEventGroupe()
    {
        return $this->idEventGroupe;
    }

}
/**
 * @var \DateTime
 *
 * @ORM\Column(name="start", type="datetime")
 */
private $start;

/**
 * @var \Date
 */
private $startdate;

/**
 * @var \Time
 */
private $starttime;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="end", type="datetime")
 */
private $end;

 /**
 * @var \Date
 */
private $enddate;

/**
 * @var \Time
 */
private $endtime;
/**
 * Get startdate
 *
 * @return date 
 */
public function getStartdate()
{
    return $this->startdate;
}

/**
 * Set startdate
 *
 * @param date $startdate
 * @return eventsgroupe
 */
public function setStartdate($startdate)
{
    $this->startdate = $startdate;

    return $this;
}

 /**
 * Get enddate
 *
 * @return date 
 */
public function getEnddate()
{
    return $this->enddate;
}

/**
 * Set enddate
 *
 * @param date $enddate
 * @return eventsgroupe
 */
public function setEnddate($enddate)
{
    $this->enddate = $enddate;

    return $this;
}

/**
 * Get starttime
 *
 * @return time 
 */
public function getStarttime()
{
    return $this->starttime;
}

/**
 * Set starttime
 *
 * @param time $starttime
 * @return eventsgroupe
 */
public function setStarttime($starttime)
{
    $this->starttime = $starttime;

    return $this;
}

/**
 * Get endttime
 *
 * @return time 
 */
public function getEndtime()
{
    return $this->endttime;
}

/**
 * Set endtime
 *
 * @param time $endtime
 * @return eventsgroupe
 */
public function setEndtime($endtime)
{
    $this->endtime = $endtime;

    return $this;
}

/**
 * Set start
 *
 * @param \DateTime $start
 * @return eventsgroupe
 */
public function setStart($startdate,$starttime)
{
    //$this->start = $start;
    $this->start.date('yyyy-MM-dd') = $startdate;
    $this->start.time() = $starttime;

    return $this;
}

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

/**
 * Set end
 *
 * @param \DateTime $end
 * @return eventsgroupe
 */
public function setEnd($enddate,$endtime)
{
    $this->end.date('yyyy-MM-dd') = $enddate;
    $this->end.time() = $endtime;

    return $this;
}

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