Doctrine/symfony2类的对象无法转换为字符串

nic*_*rma -1 php doctrine symfony doctrine-orm

我在Symfony 2中的项目有问题我得到了这个错误

Catchable Fatal Error: Object of class Nicearma\MemesBundle\Entity\Usuario could not be converted to string in C:\wamp\www\24memes\vendor\doctrine-dbal\lib\Doctrine\DBAL\Statement.php line 131
Run Code Online (Sandbox Code Playgroud)

问题是,我试图做一个表格,从UsuarioInfo类,这个类有一个对象Usuario,表单工作正常,但去发送信息我得到消息而我没有找到解决方案,任何人都知道如何解决这个?我有这个文件

registro.html.twig

<div class="usuario">
{{ form_row(form.usuario) }}
</div>
{{ form_rest(form) }}
Run Code Online (Sandbox Code Playgroud)

Usuario.php

namespace Nicearma\MemesBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Nicearma\MemesBundle\Entity\Usuario
 *
 * @ORM\Table(name="usuario")
 * @ORM\Entity(repositoryClass="Nicearma\MemesBundle\Repository\Usuario")
 */
class Usuario implements UserInterface
{
    /**
     * @var integer $id
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string $nombre
     * @Assert\Type(type="String") 
     * @Assert\MaxLength(255)
     * @Assert\NotBlank
     * @ORM\Column(name="nombre", type="string", length=255, nullable=false)
     */
    private $nombre;

     /**
     * @var string $clave
     * @Assert\NotBlank
     * @Assert\Type(type="String")
     * @Assert\MaxLength(255)
     * @ORM\Column(name="clave", type="string", length=255, nullable=false)
     */
    private $clave;

    /**
     * @var integer $punto
     *
     * @ORM\Column(name="punto", type="integer", nullable=false)
     */
    private $punto;

    /**
     * @var UsuarioEstado
     *
     * @ORM\ManyToOne(targetEntity="UsuarioEstado")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_usuario_estado", referencedColumnName="id")
     * })
     */
    private $UsuarioEstado;

     /**
     * @var IdUsuarioEstado
     * @ORM\Column(name="id_usuario_estado", type="integer", nullable=false)
     * })
     */
    private $idUsuarioEstado;

    /**
     * @var UsuarioTipo
     *
     * @ORM\ManyToOne(targetEntity="UsuarioTipo")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_usuario_tipo", referencedColumnName="id")
     * })
     */
    private $UsuarioTipo;

   /**
     * @var idUsuarioTipo
     * @ORM\Column(name="id_usuario_tipo", type="integer", nullable=false)
     */

    private $idUsuarioTipo;

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

    /**
     * Set nombre
     *
     * @param string $nombre
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;
    }

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

    /**
     * Set punto
     *
     * @param integer $punto
     */
    public function setPunto($punto)
    {
        $this->punto = $punto;
    }

    /**
     * Get punto
     *
     * @return integer 
     */
    public function getPunto()
    {
        return $this->punto;
    }

    /**
     * Set UsuarioEstado
     *
     * @param Nicearma\MemesBundle\Entity\UsuarioEstado $idUsuarioEstado
     */
    public function setUsuarioEstado(\Nicearma\MemesBundle\Entity\UsuarioEstado $UsuarioEstado)
    {
        $this->UsuarioEstado = $UsuarioEstado;
    }

    /**
     * Get UsuarioEstado
     *
     * @return Nicearma\MemesBundle\Entity\UsuarioEstado 
     */
    public function getUsuarioEstado()
    {
        return $this->UsuarioEstado;
    }
     /**
     * Set idUsuarioEstado
     *
     * @param integer $idUsuarioEstado
     */
    public function setIdUsuarioEstado( $idUsuarioEstado)
    {
        $this->idUsuarioEstado = $idUsuarioEstado;
    }

    /**
     * Get idUsuarioEstado
     *
     * @return integer
     */
    public function getIdUsuarioEstado()
    {
        return $this->idUsuarioEstado;
    }

    /**
     * Set UsuarioTipo
     *
     * @param Nicearma\MemesBundle\Entity\UsuarioTipo $idUsuarioTipo
     */
    public function setUsuarioTipo(\Nicearma\MemesBundle\Entity\UsuarioTipo $UsuarioTipo)
    {
        $this->UsuarioTipo = $UsuarioTipo;
    }

    /**
     * Get UsuarioTipo
     *
     * @return Nicearma\MemesBundle\Entity\UsuarioTipo 
     */
    public function getUsuarioTipo()
    {
        return $this->UsuarioTipo;
    }

    /**
     * Set idUsuarioTipo
     *
     * @param integer $idUsuarioTipo
     */
    public function setIdUsuarioTipo( $idUsuarioTipo)
    {
        $this->idUsuarioTipo = $idUsuarioTipo;
    }

    /**
     * Get idUsuarioTipo
     *
     * @return integer
     */
    public function getIdUsuarioTipo()
    {
        return $this->idUsuarioTipo;
    }

    public function equals(UserInterface $user)
    {
        return $this->username === $user->getUsername();
    }

    public function eraseCredentials() {

    }

    public function getPassword() {
        return $this->clave;
    }

    public function getRoles() {
       $this->idUsuarioTipo->getTipo();
    }

    public function getSalt() {
        return null;
    }

    public function getUsername() {
        return $this->nombre;
    }

    /**
     * Set clave
     *
     * @param string $clave
     */
    public function setClave($clave)
    {
        $this->clave = $clave;
    }

    /**
     * Get clave
     *
     * @return string 
     */
    public function getClave()
    {
        return $this->clave;
    }
}
Run Code Online (Sandbox Code Playgroud)

UsuarioType.php

namespace Nicearma\MemesBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class UsuarioType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('nombre')
            ->add('clave')
        ;
    }
    public function getDefaultOptions(array $options)
    {
    return array(
        'data_class' => 'Nicearma\MemesBundle\Entity\Usuario',
    );
    }
    public function getName()
    {
        return 'Usuario';
    }
}
Run Code Online (Sandbox Code Playgroud)

usuarioInfo.php

namespace Nicearma\MemesBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
 * Nicearma\MemesBundle\Entity\UsuarioInfo
 *
 * @ORM\Table(name="usuario_info")
 * @ORM\Entity
 */
class UsuarioInfo
{
    /**
     * @var integer $id
     * 
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string $correo
     * Assert\Email
     * @ORM\Column(name="correo", type="string", length=255, nullable=false)
     */
    private $correo;

    /**
     * @var Usuario
     * @Assert\Type(type="Nicearma\MemesBundle\Entity\Usuario")
     * @ORM\OneToOne(targetEntity="Usuario")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_usuario", referencedColumnName="id")
     * })
     */
    private $Usuario;

     /**
     * @var idUsuario
     * @ORM\Column(name="id_usuario", type="integer", nullable=false)
     */
    private $idUsuario;


    /**
     * @var Nacionalidad
     * @Assert\Type(type="Nicearma\MemesBundle\Entity\Nacionalidad")
     * @ORM\ManyToOne(targetEntity="Nacionalidad")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_pais", referencedColumnName="id")
     * })
     */
     private $Pais;



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

    /**
     * Set correo
     *
     * @param string $correo
     */
    public function setCorreo($correo)
    {
        $this->correo = $correo;
    }

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

    /**
     * Set Usuario
     *
     * @param Nicearma\MemesBundle\Entity\Usuario $Usuario
     */
    public function setUsuario(\Nicearma\MemesBundle\Entity\Usuario $Usuario)
    {
        $this->Usuario = $Usuario;
    }

    /**
     * Get Usuario
     *
     * @return Nicearma\MemesBundle\Entity\Usuario 
     */
    public function getUsuario()
    {
        return $this->Usuario;
    }

    /**
     * Set Pais
     *
     * @param Nicearma\MemesBundle\Entity\Nacionalidad $Pais
     */
    public function setPais(\Nicearma\MemesBundle\Entity\Nacionalidad $Pais)
    {
        $this->Pais = $Pais;
    }

    /**
     * Get Pais
     *
     * @return Nicearma\MemesBundle\Entity\Nacionalidad 
     */
    public function getPais()
    {
        return $this->Pais;
    }
}
Run Code Online (Sandbox Code Playgroud)

usuarioInfoType.php

namespace Nicearma\MemesBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Doctrine\ORM\EntityRepository;

class UsuarioInfoType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('correo')
            ->add('pais', 'entity', array ('class'=>'Nicearma\\MemesBundle\\Entity\\Nacionalidad','property'=>'nom_pais'))
            ->add('usuario',new UsuarioType);    
        ;
    }

    public function getDefaultOptions(array $options)
    {
    return array(
        'data_class' => 'Nicearma\MemesBundle\Entity\UsuarioInfo',
    );
    }

    public function getName()
    {
        return 'UsuarioInfo';
    }
}
Run Code Online (Sandbox Code Playgroud)

控制器是

public function registroAction(Request $peticion){
        $regUs= new \Nicearma\MemesBundle\Entity\UsuarioInfo();
        $formulario = $this->createForm(new \Nicearma\MemesBundle\Form\UsuarioInfoType(),  $regUs);
        if ($peticion->getMethod() == 'POST') {
            $formulario->bindRequest($peticion);
            if ($formulario->isValid()) {
               // $regUs->setIdUsuario(1);
                $em = $this->getDoctrine()->getEntityManager();
                $
                $em->persist($regUs);
                $em->flush();
                $base->flush();
               return $this->redirect($this->generateUrl('DenunciaEnviada'));
            }else{

            }
        }
        return $this->render('NicearmaMemesBundle:Usuario:usuarioRegistro.html.twig', array('form' => $formulario->createView(),'titulo'=>'Crear usuario','descripcion'=>'usuario','claves'=>'us','nombre'=>'Prueba usuario'));
    }
Run Code Online (Sandbox Code Playgroud)

Jas*_*ngh 5

如此简单,它将返回关系类的对象.

- >你正在使用你已经应用查询的主类的getter方法进一步使用关系类的getter方法.

例如

$ EXP-> getExperiencesCompany() - >的getName();