可捕获的致命错误:类 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 类的对象无法转换为字符串