Я работаю над REST API.Следовательно, я создал свои сущности, например, например, этот musee.php
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Musee
*
* @ORM\Table(name="musee")
* @ORM\Entity(repositoryClass="AppBundle\Repository\MuseeRepository")
*/
class Musee
{
/**
* @var int
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string", nullable=false)
*/
private $nom;
/**
* @var string
*
* @ORM\Column(type="string", nullable=false)
*/
private$adresse;
/**
* @var integer
*
* @ORM\Column(type="integer", nullable=false)
*/
private $horaireOuverture;
/**
* @var integer
*
* @ORM\Column(type="integer", nullable=false)
*/
private $horaireFermeture;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Bateau", mappedBy="musee")
* @ORM\JoinColumn(referencedColumnName="id")
*/
private $bateaux;
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @param int $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @return string
*/
public function getNom()
{
return $this->nom;
}
/**
* @param string $nom
*/
public function setNom($nom)
{
$this->nom = $nom;
}
/**
* @return string
*/
public function getAdresse()
{
return $this->adresse;
}
/**
* @param string $adresse
*/
public function setAdresse($adresse)
{
$this->adresse = $adresse;
}
/**
* @return int
*/
public function getHoraireOuverture()
{
return $this->horaireOuverture;
}
/**
* @param int $horaireOuverture
*/
public function setHoraireOuverture($horaireOuverture)
{
$this->horaireOuverture = $horaireOuverture;
}
/**
* @return int
*/
public function getHoraireFermeture()
{
return $this->horaireFermeture;
}
/**
* @param int $horaireFermeture
*/
public function setHoraireFermeture($horaireFermeture)
{
$this->horaireFermeture = $horaireFermeture;
}
/**
* @return mixed
*/
public function getBateaux()
{
return $this->bateaux;
}
/**
* @param mixed $bateaux
*/
public function setBateaux($bateaux)
{
$this->bateaux = $bateaux;
}
}
Мой MuseeRepository также существует, и в моем config.yml я вставил (оба были установлены с помощью composer):
# Nelmio CORS
nelmio_cors:
defaults:
allow_credentials: false
allow_origin: ['*']
allow_headers: ['Content-Type']
allow_methods: ['POST', 'PATCH', 'GET', 'DELETE', 'OPTIONS']
max_age: 3600
paths:
'^/api':
# FosRest
fos_rest:
routing_loader:
include_format: false
view:
view_response_listener: true
format_listener:
rules:
- { path: '^/', priorities: ['json'], fallback_format: 'json' }
В моем MuseeController вот что я положил:
<?php
/**
* Created by PhpStorm.
* User: Fanny
* Date: 28/03/2018
* Time: 16:13
*/
namespace AppBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\FOSRestController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use FOS\RestBundle\View\View;
use AppBundle\Entity\Musee;
class MuseeController extends Controller
{
/**
* @Rest\View(serializerGroups={"musee"})
* @Rest\Get("/musee")
*/
// Fonction qui renvoie toutes all musee
public function findMusee()
{
$musee = $this->getDoctrine()
->getRepository('AppBundle:Musee')
->findAll();
return $musee;
}
}
Я также использовал файл сериализатора, мне интересно, не возникает ли оттуда моя проблема ... Хотя все эти элементы находятся в моей базе данных, когда я генерировалэто с доктриной.
AppBundle\Entity\Musee:
attributes:
id:
groups: ['musee']
nom:
groups: ['musee']
adresse:
groups: ['musee']
horaire_ouverture:
groups: ['musee']
horaire_fermeture:
groups: ['musee']
bateaux:
groups: ['musee']
Моя проблема в том, что когда я пытаюсь позвонить своему локальному хосту: 8000 / musee, я получаю достаточное количество скобок по сравнению с тем, что находится в моей базе данных, но они кажутся пустыми.
Я думаю, что я мог пропустить шаг, но я не уверен, где искать.Как вы думаете, куда мне смотреть?
ОБНОВЛЕНИЕ:
Версия Symfony, которую я имею, - 3.4.Я включил сериализатор в моем config.yml и установил с помощью composer: jms / serializer-bundle.В моем приложении Kernel у меня есть:
new FOS\RestBundle\FOSRestBundle(),
new JMS\SerializerBundle\JMSSerializerBundle(),
new Nelmio\CorsBundle\NelmioCorsBundle(),
Проблема общая для всех моих сущностей.Я получаю правильное количество скобок, но нет содержимого внутри.