0

每个人。

我遇到了 Easy Admin 和 Symfony 处理的一对多关系的问题。我目前拥有的三个实体是用户、产品和类别。

当我将关系放在产品和类别上时,当我尝试在 Easy Bundle 的管理部分添加新类别时出现此错误:

Catchable Fatal Error: Object of class AppBundle\Entity\Product could not be converted to string

这是我的同事在 Product 和 Category 类中的样子,它们基本上是直接从 Symfony 文档中复制出来的。

产品类别

/**
 * @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
 * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
 */
private $category;

这是类别端的关联:

...
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\OneToMany(targetEntity="Product", mappedBy="category")
 */
private $products;

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

我认为正在发生的主要问题是它们在产品表中没有类别字段,这让 Easy Bundle 感到困惑,因为它似乎依赖于类属性。

如果有人可以就如何解决此问题提出建议,那就太好了。或者,如果您知道可以使用的黄油管理包可能存在此问题,那也很棒。

此外,如果您对 Easy Admin Bundle 有任何经验,您是否建议开发人员自己制作。因为我确实看到了这个 Bundle 的其他问题,例如能够在 Products 新表单上列出类别名称,因为 Symfony 似乎只记录 category_id 而不是名称。我无法按名称列出类别,只能按 ID 号列出。我想列出不同的类别名称。

任何建议或帮助都会很棒。

4

1 回答 1

2

我也收到了这个错误。只需向您的实体添加一个__toString()魔术方法:Product

class Product {
    ...

    public function __toString()
    {
        return $this->title; // <-- add here a real property which
    }                        //     describes your product
于 2017-05-14T23:09:43.917 回答