可捕获的致命错误:类AppBundle \ Entity \ Categoria的对象无法转换为字符串

时间:2016-07-26 15:31:29

标签: entity-framework symfony orm doctrine-orm doctrine

Produto.php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Produto
 *
 * @ORM\Table(name="produto")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ProdutoRepository")
 */
class Produto
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="descricao", type="string", length=50)
     */
    private $descricao;

    /**
     * @ORM\ManyToOne(targetEntity="Categoria", inversedBy="produtos")
     * @ORM\JoinColumn(name="categoria_id", referencedColumnName="id")
     */
    private $categoria;


    /**
     * @var decimal
     *
     * @ORM\Column(name="valor", type="decimal", scale=2)
     */
    private $valor;

    /**
     * @var int
     *
     * @ORM\Column(name="multiplo", type="integer")
     */
    private $multiplo;

    /**
     * @var int
     *
     * @ORM\Column(name="etapa", type="integer")
     */
    private $etapa;

    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set descricao
     *
     * @param string $descricao
     *
     * @return Produto
     */
    public function setDescricao($descricao)
    {
        $this->descricao = $descricao;

        return $this;
    }

    /**
     * Get descricao
     *
     * @return string
     */
    public function getDescricao()
    {
        return $this->descricao;
    }

    /**
     * Set categoria
     *
     * @param \AppBundle\Entity\Categoria $categoria
     *
     * @return Produto
     */
    public function setCategoria(\AppBundle\Entity\Categoria $categoria = null)
    {
        $this->categoria = $categoria;
    }

    /**
     * Get categoria
     *
     * @return \AppBundle\Entity\Categoria
     */
    public function getCategoria()
    {
        return $this->categoria;
    }

    /**
     * Set valor
     *
     * @param string $valor
     *
     * @return Produto
     */
    public function setValor($valor)
    {
        $this->valor = $valor;

        return $this;
    }

    /**
     * Get valor
     *
     * @return string
     */
    public function getValor()
    {
        return $this->valor;
    }

    /**
     * Set multiplo
     *
     * @param \int $multiplo
     *
     * @return Produto
     */
    public function setMultiplo($multiplo)
    {
        $this->multiplo = $multiplo;

        return $this;
    }

    /**
     * Get multiplo
     *
     * @return \int
     */
    public function getMultiplo()
    {
        return $this->multiplo;
    }

    /**
     * Set etapa
     *
     * @param \int $etapa
     *
     * @return Produto
     */
    public function setEtapa( $etapa)
    {
        $this->etapa = $etapa;

        return $this;
    }

    /**
     * Get etapa
     *
     * @return \int
     */
    public function getEtapa()
    {
        return $this->etapa;
    }
}

Categoria.php

namespace AppBundle\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

/**
 * Categoria
 *
 * @ORM\Table(name="categoria")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\CategoriaRepository")
 */
class Categoria
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="descricao", type="string", length=50)
     */
    private $descricao;

    /**
     * @ORM\OneToMany(targetEntity="Produto", mappedBy="categoria")
     */
    private $produtos;

    /**
     * @ORM\OneToMany(targetEntity="Subcategoria", mappedBy="categoria")
     */
    private $subcategorias;


    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set descricao
     *
     * @param string $descricao
     *
     * @return Categoria
     */
    public function setDescricao($descricao)
    {
        $this->descricao = $descricao;

        return $this;
    }

    /**
     * Get descricao
     *
     * @return string
     */
    public function getDescricao()
    {
        return $this->descricao;
    }

    public function __construct(){
        $this->produtos = new ArrayCollection();
        $this->subcategorias = new ArrayCollection();
    }

    /**
     * Add produto
     *
     * @param \AppBundle\Entity\Produto $produto
     *
     * @return Categoria
     */
    public function addProduto(\AppBundle\Entity\Produto $produto)
    {
        $this->produtos[] = $produto;

        return $this;
    }

    /**
     * Remove produto
     *
     * @param \AppBundle\Entity\Produto $produto
     */
    public function removeProduto(\AppBundle\Entity\Produto $produto)
    {
        $this->produtos->removeElement($produto);
    }

    /**
     * Get produtos
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getProdutos()
    {
        return $this->produtos;
    }

    /**
     * Add subcategoria
     *
     * @param \AppBundle\Entity\Subcategoria $subcategoria
     *
     * @return Categoria
     */
    public function addSubcategoria(\AppBundle\Entity\Subcategoria $subcategoria)
    {
        $this->subcategorias[] = $subcategoria;

        return $this;
    }

    /**
     * Remove subcategoria
     *
     * @param \AppBundle\Entity\Subcategoria $subcategoria
     */
    public function removeSubcategoria(\AppBundle\Entity\Subcategoria $subcategoria)
    {
        $this->subcategorias->removeElement($subcategoria);
    }

    /**
     * Get subcategorias
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getSubcategorias()
    {
        return $this->subcategorias;
    }
}

如何解决?

1 个答案:

答案 0 :(得分:5)

Try adding a method called "__toString()" in AppBundle/Entity/Categoria, and return a string to identify your object:

/**
 * @return string
 */
 public function __toString()
 {
     return $this->title;
 }