首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2奏鸣曲:自定义类中没有实体管理器

Symfony2奏鸣曲:自定义类中没有实体管理器
EN

Stack Overflow用户
提问于 2015-09-30 14:42:40
回答 2查看 1.3K关注 0票数 0

我正在尝试在Sonata-Admin中创建自定义表单,但我没有为类School\ChildBirthBundle\ entity \DataChapter定义任何实体管理器

我的代码:

代码语言:javascript
复制
namespace School\ChildBirthBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Knp\Menu\ItemInterface as MenuItemInterface;
use School\ChildBirthBundle\Entity\DataChapter;

class DataChapterAdmin extends Admin
{

protected function configureShowFields(ShowMapper $showMapper)
{
$showMapper
    ->add('name')
    ->add('status')
;
}



sonata.admin.data_chapter:
class: School\ChildBirthBundle\Admin\DataChapterAdmin
tags:
    - { name: sonata.admin, manager_type: orm, group: "Content", label: "Chapter" }
arguments: 
    - ~
    - School\ChildBirthBundle\Entity\DataChapter
    - ~
    - @doctrine.orm.default_entity_manager
calls:
    - [ setTranslationDomain, [SchoolChildBirthBundle]]

实体看起来像这样

代码语言:javascript
复制
namespace School\ChildBirthBundle\Entity;
 use Doctrine\ORM\Mapping as ORM;
 /**
 * @ORM\Entity
 * @ORM\Table(name="data_chapter")
  */
  class DataChapter 
  {

   /**
   * @ORM\Column(type="integer")
    * @ORM\Id
   * @ORM\GeneratedValue(strategy="AUTO")
   */
    protected $id;

  /**
    * @ORM\Column(type="string", length=255)
    */
   protected $name;

   /**
   * @ORM\Column(type="integer", length=1)
    */
    protected $status;

    /**
    * @ORM\Column(type="integer")
     */
  protected $idSubject;
 }

我不知道我做错了什么

EN

回答 2

Stack Overflow用户

发布于 2015-09-30 16:38:16

没有为类School\ChildBirthBundle\ entity \Data第500章内部服务器错误定义实体管理器- RuntimeException

代码语言:javascript
复制
 in vendor/sonata-project/doctrine-orm-admin-bundle/Model/ModelManager.php at line 223  -

            $em = $this->registry->getManagerForClass($class);
            if (!$em) {
                throw new \RuntimeException(sprintf('No entity manager defined for class %s', $class));
            }
            $this->cache[$class] = $em;
票数 0
EN

Stack Overflow用户

发布于 2015-10-02 17:35:02

也许这是你的管理服务声明中的一个问题,如果你检查文档,就会发现没有第四个参数:

https://sonata-project.org/bundles/admin/master/doc/reference/getting_started.html#step-3-create-an-admin-service

你应该有:

代码语言:javascript
复制
sonata.admin.data_chapter:
    class: School\ChildBirthBundle\Admin\DataChapterAdmin
    tags:
        - { name: sonata.admin, manager_type: orm, group: "Content", label: "Chapter" }
    arguments: 
        - ~
        - School\ChildBirthBundle\Entity\DataChapter
        - ~
    calls:
        - [ setTranslationDomain, [SchoolChildBirthBundle]]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32859478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档