2012-12-29 2 views
1

"편집"컨트롤러 /보기를 작성하려고합니다. 하지만이 오류가 발생합니다. 읽었을 때 문제가 될 수 있으며 문제를 해결하려고 노력했지만 문제가 무엇인지 알지 못합니다. 그것은 컬렉션을 반환하기로되어 있지만 나는 "프록시"가 무엇을 의미하는지 그리고 어떻게 그것을 얻고 있는지 알지 못합니다.Symfony2 - Doctrine2 - ManyToOne 관계/"Doctrine Common Collections Collection", "Proxies ... Entity ... Proxy"유형의 예상 인수

있는 내가 편집보기를 짓고 있어요 엔티티 :

<?php 

namespace Monse\WebBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Monse\WebBundle\Entity\BasedeDatos 
* 
* @ORM\Table() 
* @ORM\Entity 
*/ 
class BasedeDatos 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
* @ORM\ManyToOne(targetEntity="Monse\WebBundle\Entity\ServidoresBD") 
* @ORM\JoinColumn(name="servidores_id", referencedColumnName="id",nullable=false) 
* 
*/ 
    private $servidorBD; 

    /** 
    * @var string $nombreBD 
    * 
    * @ORM\Column(name="nombreBD", type="string", length=255,unique=true) 
    */ 
    private $nombreBD; 


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

    /** 
    * Set servidorBD 
    * 
    * @param integer $servidorBD 
    */ 
    public function setServidorBD(\Monse\WebBundle\Entity\ServidoresBD $servidorBD) 
    { 
     $this->servidorBD = $servidorBD; 
    } 

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

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

    /** 
    * Get nombreBD 
    * 
    * @return string 
    */ 
    public function getNombreBD() 
    { 
     return $this->nombreBD; 
    } 
    public function __construct() 
    { 
     $this->servidorBD = new Doctrine\Common\Collections\ArrayCollection(); 
    } 
} 

FormType :

<?php 

namespace Monse\WebBundle\Form; 
use Doctrine\ORM\EntityRepository; 
use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilder; 

class BasedeDatosType extends AbstractType 
{ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('ServidorBD','entity', 
        array ('class' => 'MonseWebBundle:ServidoresBD', 
         'multiple' => true, 
         'required' => true, 
         'label' => 'Servidor de Base de Datos: ', 
         'query_builder' => function(EntityRepository $er) { 
         return $er->createQueryBuilder('u') 
         ->orderBy('u.url', 'ASC'); 
                      }, 
         )) 
      ->add('nombreBD','text', array('required' => true, 'label' => 'Nombre Base de Datos: ')) 
      ->add('UsuarioBD','entity',array('class' => 'MonseWebBundle:UsuariosBD','multiple' => true, 
              'required' => true, 'label' => 'Usuario Asociado: ', 
              'property_path' => false, 
              'query_builder' => function (EntityRepository $er){ 
               return $er->createQueryBuilder('s') 
               ->orderBy ('s.usuario','ASC'); },)) 
      ; 

    } 

    public function getName() 
    { 
     return 'basededatos'; 
    } 
} 

문제 (내가 생각하는)에 대한 책임을 엔티티 :

<?php 

namespace Monse\WebBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Monse\WebBundle\Entity\ServidoresBD 
* 
* @ORM\Table() 
* @ORM\Entity 
*/ 
class ServidoresBD 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 
    /** 
    * @var string $url 
    * 
    * @ORM\Column(name="url", type="string", length=255) 
    */ 
    private $url; 
    /** 
    * 
    * @ORM\OneToOne (targetEntity="Monse\WebBundle\Entity\Dominios") 
    * @ORM\JoinColumn(name="dominio_id", referencedColumnName="id",nullable=false,unique=true) 
    */ 
    private $dominio; 


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

    /** 
    * Set dominio 
    * 
    * @param integer $dominio 
    */ 
    public function setDominio(\Monse\WebBundle\Entity\Dominios $dominio) 
    { 
     $this->dominio = $dominio; 
    } 

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

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

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

} 

양식 유형 :

<?php 

namespace Monse\WebBundle\Form; 

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

class ServidoresBDType extends AbstractType 
{ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder 
      ->add('url') 
      ->add('dominio', 'collection', array('type' => new DominiosType())); 
     ; 
    } 
public function getDefaultOptions(array $options) 
    { 
     return array(
      'data_class' => 'Monse\WebBundle\Entity\ServidoresBD' 
     ); 
    } 
    public function getName() 
{ 
    return 'issue_selector'; 
} 
} 

반환 할 arraycollection을 어디에 추가해야합니까? 어떻게 이런 일이 다시 일어나지 않도록 할 수 있습니까? 이게 어리석은 질문이라면, 미안해. 배울 려구.

답변

0

첫 번째 양식 유형에서 두 개의 "다중"속성을 false로 변경했습니다.

관련 문제