Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony2-Doctrine2-多通关系/类型为“的预期参数”;条令\Common\Collections\Collection“&引用;代理\…实体…代理“;鉴于_Symfony_Doctrine Orm_Many To One - Fatal编程技术网

Symfony2-Doctrine2-多通关系/类型为“的预期参数”;条令\Common\Collections\Collection“&引用;代理\…实体…代理“;鉴于

Symfony2-Doctrine2-多通关系/类型为“的预期参数”;条令\Common\Collections\Collection“&引用;代理\…实体…代理“;鉴于,symfony,doctrine-orm,many-to-one,Symfony,Doctrine Orm,Many To One,我试图构建“编辑”控制器/视图,但遇到此错误。据我所知,这可能是一个关系问题,我试图解决它,但我不知道它有什么问题。它应该返回一个集合,但我甚至不知道“代理”是什么意思以及它是如何得到它的 为其生成编辑视图的实体: <?php namespace Monse\WebBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Monse\WebBundle\Entity\BasedeDatos * * @ORM\Table(

我试图构建“编辑”控制器/视图,但遇到此错误。据我所知,这可能是一个关系问题,我试图解决它,但我不知道它有什么问题。它应该返回一个集合,但我甚至不知道“代理”是什么意思以及它是如何得到它的

为其生成编辑视图的实体:

    <?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();
    }
}
我在第一个表单类型中将两个“multiple”属性更改为false

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