Как исправить ошибку «Catchable Fatal Error: объект класса AppBundle \\ Controller \\ AlbumController не может быть преобразован в строку»? - PullRequest
0 голосов
/ 25 октября 2019

Я создаю 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();
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...