所以我在syfmony 3上使用FOSRestBundle创建了一个API: 这一个:
public function getHoraireAction(){
$Horaire = $this->getDoctrine()->getRepository('CBMedBundle:Horaire')- >findAll();
if(!$Horaire){
throw $this->createNotFoundException();
}
return $Horaire;
}
使用JMSSerializer的实体Horaire.php
<?php
namespace CBMedBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use JMS\Serializer\Annotation\Groups;
use JMS\Serializer\Annotation\VirtualProperty;
/**
* Horaire
*
* @ORM\Table(name="horaire")
* @ORM\Entity(repositoryClass="CBMedBundle\Repository\HoraireRepository")
*
* @ExclusionPolicy("all")
*/
class Horaire
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var time
*
* @ORM\Column(name="Debut", type="time", length=10)
* @Expose
*/
private $debut;
/**
* @var time
*
* @ORM\Column(name="EntreeSalle", type="time", length=10)
* @Expose
*/
private $entreeSalle;
/**
* @var time
*
* @ORM\Column(name="HeureAnesthesie", type="time", length=10)
* @Expose
*/
private $heureAnesthesie;
/**
* @var time
*
* @ORM\Column(name="Operation", type="time", length=10)
* @Expose
*/
private $operation;
/**
* @var time
*
* @ORM\Column(name="incision", type="time", length=10)
* @Expose
*/
private $incision;
/**
* @var time
*
* @ORM\Column(name="finOpe", type="time", length=10)
* @Expose
*/
private $finOpe;
/**
* @var time
*
* @ORM\Column(name="Reveil", type="time", length=10)
* @Expose
*/
private $reveil;
/**
* @var time
*
* @ORM\Column(name="Sortie", type="time", length=10)
* @Expose
*/
private $sortie;
/**
* @ORM\OneToOne(targetEntity="CBMedBundle\Entity\Interventions", cascade= {"persist"})
* @Expose
*/
private $Interventions;
etc..
一切正常,但似乎API没有返回具有“时间”类型的字段的真实值。
Horaire.php date time datas on mysql
这是我在测试API(使用post man)时得到的结果
如何解决这个问题。
由于
答案 0 :(得分:1)
好的,我找到了解决方案。
我必须添加这些行:
use JMS\Serializer\Annotation\Type;
//.....
/**
* @var time
*
* @ORM\Column(name="Debut", type="time", length=10)
* @Type("DateTime<'h-m-s'>")
* @Expose
*/
private $debut;
etc..