Php 索纳塔酒店';s菜单标签树显示实体路径,而不是实体名称

Php 索纳塔酒店';s菜单标签树显示实体路径,而不是实体名称,php,xml,sonata-admin,Php,Xml,Sonata Admin,这是我的第一个问题。我对索纳塔有问题。Everythink工作正常,但我得到的是实体的路径,而不是实体字段的名称 <?xml version="1.0" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://

这是我的第一个问题。我对索纳塔有问题。Everythink工作正常,但我得到的是实体的路径,而不是实体字段的名称

<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services
http://symfony.com/schema/dic/services/services-1.0.xsd">
    <services>
        <service id="sonata.admin.city" class="My\FrontendBundle\Admin\CityAdmin">
            <tag name="sonata.admin" manager_type="orm" group="Dane" label="Miasta"/>
            <argument />
            <argument>My\FrontendBundle\Entity\City</argument>
            <argument>SonataAdminBundle:CRUD</argument>
            <call method="setTranslationDomain">
                <argument>MyFrontendBundle</argument>
            </call>
        </service>
    </services>
</container>

照片:

您需要在与管理员链接的实体中定义
\uuu toString()
方法
My\FrontendBundle\entity\City
,并在编辑添加案例时返回城市名称返回所需文本

class City {

    public function __toString() {

        return ( $this->id ) ? $this->getName(): 'New City';

    }
// ...
}

在管理类中定义/重写
toString()
方法:

class CityAdmin extends AbstractAdmin
{
    /**
     * @inheritdoc
     */
    public function toString($object)
    {
       return (!$object || !$object->getId()) ? 'New City' : $object->getName();
    }

    ...

}
class CityAdmin extends AbstractAdmin
{
    /**
     * @inheritdoc
     */
    public function toString($object)
    {
       return (!$object || !$object->getId()) ? 'New City' : $object->getName();
    }

    ...

}