为了账号安全,请及时绑定邮箱和手机立即绑定

SONATA MY ADMIN : TypeError: trim() expects

SONATA MY ADMIN : TypeError: trim() expects

PHP
Qyouu 2023-04-28 16:15:13
我目前在一个网站上工作,我必须在后台使用 Sonata Admin。我正在将项目从 symfony 3 升级到 symfony 4,当我尝试过滤实例化实体时遇到问题。我以这种方式配置了一个过滤器:    protected function configureDatagridFilters(DatagridMapper $datagridMapper)    {        $datagridMapper->add('name',null , [], EntityType::class, array(            'class' => Universe::class,            'choice_label' => 'name',        ));    }它在下拉列表中很好地引用了现有的 Universe 实体(按照我的要求显示它们的名称)。你自己看 :下拉过滤器但是当我尝试使用该列表中的名称进行实际过滤时,我得到了这个错误:TypeError: trim() expects parameter 1 to be string, object given我查看了互联网,根据我在文档中找到的内容,我完全按照他们的方式配置了过滤器(来源:https ://symfony.com/doc/current/bundles/SonataAdminBundle/getting_started/the_list_view.html#filtering-by-类别)。你知道我做错了什么吗?我不知道除了找到错误之外还能提供什么...多谢 !
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

如果我理解问题正确,您想根据同一实体的字段过滤实体?


namespace App\Admin;


use App\Entity\Category;

use Sonata\AdminBundle\Datagrid\DatagridMapper;

use Symfony\Bridge\Doctrine\Form\Type\EntityType;


final class UniverseAdmin extends AbstractAdmin

{

    protected function configureDatagridFilters(DatagridMapper $datagridMapper)

    {

        $datagridMapper

            ->add('title')

            ->add('name',null , [], EntityType::class, [

                'class' => Universe::class,

                'choice_label' => 'name',

            ])

        ;

    }

}

恐怕这行不通。您应该创建一个包含“名称”字段的实体,并在名称实体和适当的实体之间创建关系。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信