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

Posted

技术标签:

【中文标题】可捕获的致命错误:类 AppBundle\\Entity\\Categoria 的对象无法转换为字符串【英文标题】:Catchable Fatal Error: Object of class AppBundle\Entity\Categoria could not be converted to string可捕获的致命错误:类 AppBundle\Entity\Categoria 的对象无法转换为字符串 【发布时间】:2016-07-26 15:31:28 【问题描述】:

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】:

尝试在 AppBundle/Entity/Categoria 中添加一个名为“__toString()”的方法,并返回一个字符串来标识您的对象:

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

【讨论】:

您可以多提供一个帮助吗?我的表格添加产品以接受插入新产品而没有类别。我可以阻止这个。只允许在有一个类别后添加产品。 好吧,在您的产品表单中,您应该添加一个下拉列表来选择一个类别。最好的方法是使用实​​体类型字段symfony.com/doc/current/reference/forms/types/entity.html

以上是关于可捕获的致命错误:类 AppBundle\Entity\Categoria 的对象无法转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

可捕获的致命错误:类Proxies的对象 __ CG __ AppBundle Entity Modelo无法转换为字符串

symfony2 ContextErrorException:可捕获的致命错误:类 Proxies\__CG__\...\Entity\... 的对象无法转换为字符串

可捕获致命错误的 FindAll() 结果:DateTime 类的对象无法转换为字符串

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

致命错误:未捕获的错误:未找到“Omnipay\Omnipay”类

Laravel - 致命错误:未捕获的错误:找不到类'Auth'