Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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
Php Easyadmin一对多:不显示表单_Php_Forms_Symfony_Doctrine_Symfony2 Easyadmin - Fatal编程技术网

Php Easyadmin一对多:不显示表单

Php Easyadmin一对多:不显示表单,php,forms,symfony,doctrine,symfony2-easyadmin,Php,Forms,Symfony,Doctrine,Symfony2 Easyadmin,通过Easyadmin、Symfony3和Doctrine,我试图为一篇文章显示一个嵌入式表单,以便将URL添加到文章本身 然而,当前的文章表单并没有显示UrlType表单,而是显示文本框,看起来,这些文本框应该是我想要添加的url的id 我发现以下配置应该可以正常工作(根据): 第条: class Article { [..] /** * @ORM\OneToMany(targetEntity="Url", mappedBy="article", cascad

通过Easyadmin、Symfony3和Doctrine,我试图为一篇文章显示一个嵌入式表单,以便将URL添加到文章本身

然而,当前的文章表单并没有显示UrlType表单,而是显示文本框,看起来,这些文本框应该是我想要添加的url的id

我发现以下配置应该可以正常工作(根据):

第条:

class Article
{
    [..]  

    /**
     * @ORM\OneToMany(targetEntity="Url", mappedBy="article", cascade={"persist", "remove"})
     */
    private $urls;

    public function __construct() {
        $this->urls = new ArrayCollection();
    }

    /**
     * Add url
     *
     * @param Url $url
     *
     * @return Article
     */
    public function addUrl(Url $url)
    {
        $url->setArticle($this);

        $this->urls[] = $url;

        return $this;
    }

    /**
     * Remove url
     *
     * @param Url $url
     */
    public function removeUrl(Url $url)
    {
        $this->urls->removeElement($url);
    }

    /**
     * Get url
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getUrls()
    {
        return $this->urls;
    }
}
网址:

URL类型:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('address', TextType::class);
    $builder->add('description', TextType::class);
}
我在代码中检查、反复检查和尝试了很多东西,搜索了google和stackoverflow


如何显示字段以向文章中添加新URL?

感谢友好的朋友们,此问题已得到解决。事实证明,尽管在YAML配置中对UrlType使用了完全限定的名称空间,但该类型仍会被覆盖

解决方案:将
MyVendor\MyBundle\Form\UrlType
重命名为例如
MyVendor\MyBundle\Form\urlentitype

这看起来像是Symfony或EasyAdmin中的一个bug

class Url
{
   [..]  

    /**
     * @var Article
     *
     * @ORM\ManyToOne(targetEntity="Article", inversedBy="urls")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="article_id", referencedColumnName="id")
     * })
     */
    private $article;


    /**
     * Set article
     *
     * @param Article $article
     *
     * @return Url
     */
    public function setArticle(Article $article = null)
    {
        $this->article = $article;

        return $this;
    }

    /**
     * Get article
     *
     * @return Article
     */
    public function getArticle()
    {
        return $this->article;
    }
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('address', TextType::class);
    $builder->add('description', TextType::class);
}