首页 > 解决方案 > EasyAdmin 3:OneToMany 字段名称未显示在主页上

问题描述

我创建了两个实体——产品和包装。它们通过 OneToMany 连接(一个产品 - 多个包装)相关联。当我在 EasyAdmin 中打开包装列表时,我可以在包装网格中看到产品名称。但是,如果我在 EasyAdmin 中打开产品列表,我只能看到包装的 id 而不是它们的名称。我应该怎么做才能解决这个问题?谢谢。

class PackingCrudController extends AbstractCrudController

{ ...

public function configureFields(string $pageName): iterable
{
    return [
        TextField::new('name'),
        AssociationField::new('product')->setLabel('Продукты'),
    ];
}

类 ProductCrudController 扩展 AbstractCrudController { ...

public function configureFields(string $pageName): iterable
{
    return [
        ...
        AssociationField::new('packings')
            ->setLabel('Фасовки')
            ->setFormTypeOptions([
                'by_reference' => false,
            ]),

标签: phpsymfony5easyadmin

解决方案


在您的 Products 实体中,您想创建一个 __toString() 函数来告诉 symfony 如何将您的实体显示为字符串,默认情况下它将选择 id。

App\Entity\Products.php

    public function __toString()
    {
        return $this->name;
    }


推荐阅读