gpt4 book ai didi

symfony - 自定义类中没有实体管理器和 ContextErrorException

转载 作者:行者123 更新时间:2023-12-02 04:07:31 24 4
gpt4 key购买 nike

我正在尝试在 Sonata-Admin 中创建自定义表单,并且我想将数据从数据库获取到选择框。当我尝试通过 getEntityManager() 获取数据时出现错误

No entity manager defined for class \Admin\AdminBundle\Entity\Category

我尝试将实体管理器添加到 service.yml 中的第一个参数 [代码如下]

services:
sonata.admin.category:
class: Admin\AdminBundle\Admin\Category
tags:
- {name: sonata.admin, manager_type: orm, group: "Content", label: "Kategoria"}
arguments:
- @doctrine.orm.default_entity_manager
- Admin\AdminBundle\Entity\Category
- ~
calls:
- [ setTranslationDomain, [AdminAdminBundle]]

添加默认实体管理器后出现错误:

ContextErrorException in RoutesCache.php line 47:
Warning: md5() expects parameter 1 to be string, object given

我还添加了我的ConfigureFormFields() 函数:

protected function configureFormFields(FormMapper $formMapper){

$em = $this->modelManager->getEntityManager('\Admin\AdminBundle\Entity\Category');

$query = $em->createQueryBuilder('c')
->select('c')
->from('AdminBundle:Category', 'c')
->where('c.parent IS NOT NULL')
->orderBy('c.root, c.lft', 'ASC');


$formMapper
->add ('name', 'text', array('label' => 'Nazwa Kategorii'))
->add ('alias', 'text', array('label' => 'Alias'))
->add('parent_id', 'sonata_type_model', array(
'required' => true,
'query' => $query
));

有人可以帮我解决这个错误吗?感谢您的回答,

最诚挚的问候!

最佳答案

您收到错误是因为在错误的位置添加了经理。管理服务的第一个参数应设置为管理服务的代码(默认为服务的名称)。

管理类分阶段这个字符串并构建一些基于的逻辑。你把经理放在那里,所以你会得到错误。

如果您想向管理类添加一些内容,您只需添加第四个参数(或第五、第六......),例如:

 services:
sonata.admin.category:
class: Admin\AdminBundle\Admin\Category
tags:
- {name: sonata.admin, manager_type: orm, group: "Content", label: "Kategoria"}
arguments:
- ~
- Admin\AdminBundle\Entity\Category
- ~
- @doctrine.orm.default_entity_manager
calls:
- [ setTranslationDomain, [AdminAdminBundle]]

然后在您的管理类中,您必须更新覆盖构造函数,例如:

 public function __construct($code, $class, $baseControllerName, $yourManager)
{
parent::_construct($code, $class, $baseControllerName);
$this->yourManager = $yourManager
}

关于symfony - 自定义类中没有实体管理器和 ContextErrorException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28330036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com