2016-07-26 5 views
0

Produto.phpAbfangbare Fatal Error: Object der Klasse AppBundle Entity Categoria nicht zu String umgewandelt werden könnte

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; 
    } 
} 

Wie kann das Problem beheben?

+1

Was haben Sie für diesen Fehler machen? – DOZ

Antwort

4

versuchen, eine Methode Hinzufügen namens "__toString()" in AppBundle/Entity/Categoria und zurückgeben eine Zeichenfolge Ihr Objekt zu identifizieren:

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

thanks viel! Diese Arbeit ... $ this-> descricao; cooll .. – phzao

+0

können Sie eine Hilfe mehr geben? Mein Formular hinzufügen Produkt zu akzeptieren neues Produkt einfügen ohne hat categoria. Ich kann das blockieren. Erlaube nur hinzufügen Produkt nach einer Kategorie. – phzao

+0

Nun, in Ihrer Produktform sollten Sie ein Dropdown-Menü hinzufügen, um eine Kategorie auszuwählen. Der beste Weg, dies zu tun, ist die Verwendung eines Feldes für den Entitätstyp http://symfony.com/doc/current/reference/forms/types/entity.html –

Verwandte Themen