使用json格式API的DATE TIME

时间:2016-05-18 00:56:48

标签: json api symfony fosrestbundle

抱歉,我的英语很差,这不是我妈妈的舌头。

所以我在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)时得到的结果

Error with Date time

如何解决这个问题。

由于

1 个答案:

答案 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..