Я создаю API отдыха с помощью Symfony 3, и я использовал jms_serialiser для получения данных в формате json, но у меня возникает следующая ошибка при использовании почтальона для запроса API:
{
"code": 500,
"message": "Catchable Fatal Error: Object of class AppBundle\\Controller\\AlbumController could not be converted to string"
}
Я пыталсяДобавьте это:
public function __toString() {
return $this->getNom();
}
Но не сработало
Это моя сущность
<?php
namespace AppBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* Album
*
* @ORM\Table(name="album")
*
@ORM\Entity(repositoryClass="AppBundle\Repository\AlbumRepository")
*/
class Album
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="nom", type="string", length=255)
*/
private $nom;
// début de la définiction des annotations pour les clés étrangères.
/**
* clé étrangère de l'image
*
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Image", cascade={"persist","remove"})
* @ORM\JoinColumn(name="image",nullable=true)
*/
private $image;
/**
* clé étrangère de l'artiste
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Artiste", inversedBy="albums")
* @ORM\JoinColumn(name="artiste",nullable=false)
*/
private $artiste;
/**
* relation bidirectionnelle avec les musiques de l'album
*
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Musique", mappedBy="album", cascade={"remove"})
*/
private $musiques;
/**
* clé étrangère pour le texte de la description
*
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Texte", cascade={"persist","remove"})
* @ORM\JoinColumn(name="description",nullable=true)
*/
private $description;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set nom
*
* @param string $nom
*
* @return Album
*/
public function setNom($nom)
{
$this->nom = $nom;
return $this;
}
/**
* Get nom
*
* @return string
*/
public function getNom()
{
return $this->nom;
}
/**
* Constructor
*/
public function __construct()
{
$this->musiques = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Set image
*
* @param \AppBundle\Entity\Image $image
*
* @return Album
*/
public function setImage(\AppBundle\Entity\Image $image = null)
{
$this->image = $image;
return $this;
}
/**
* Get image
*
* @return \AppBundle\Entity\Image
*/
public function getImage()
{
return $this->image;
}
/**
* Set artiste
*
* @param \AppBundle\Entity\Artiste $artiste
*
* @return Album
*/
public function setArtiste(\AppBundle\Entity\Artiste $artiste)
{
$this->artiste = $artiste;
return $this;
}
/**
* Get artiste
*
* @return \AppBundle\Entity\Artiste
*/
public function getArtiste()
{
return $this->artiste;
}
/**
* Add musique
*
* @param \AppBundle\Entity\Musique $musique
*
* @return Album
*/
public function addMusique(\AppBundle\Entity\Musique $musique)
{
$this->musiques[] = $musique;
return $this;
}
/**
* Remove musique
*
* @param \AppBundle\Entity\Musique $musique
*/
public function removeMusique(\AppBundle\Entity\Musique $musique)
{
$this->musiques->removeElement($musique);
}
/**
* Get musiques
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getMusiques()
{
return $this->musiques;
}
/**
* Set description
*
* @param \AppBundle\Entity\Texte $description
*
* @return Album
*/
public function setDescription(\AppBundle\Entity\Texte $description = null)
{
$this->description = $description;
return $this;
}
/**
* Get description
*
* @return \AppBundle\Entity\Texte
*/
public function getDescription()
{
return $this->description;
}
public function __toString() {
return $this->getNom();
}
}