Sonata管理员sortabe列表,字段为空白

时间:2019-04-11 17:58:40

标签: symfony4 sonata-admin sonata

我正在尝试在Sonata Admin捆绑包中的一个表上创建一个简单的可排序系统,我已经按照本教程(https://symfony.com/doc/master/bundles/SonataAdminBundle/cookbook/recipe_sortable_listing.html#the-recipe)进行操作,但是我无法执行此操作。

我已经仔细地执行了每个步骤,但是在我的管理表上,我只能看到一个空白的操作字段,其中没有箭头。

我搜索并搜索了整篇文章,但没有获得任何成功,我觉得自己非常想找出答案。

这是我的src / Entity / Podcast.php文件

/**
* @Gedmo\SortablePosition
*@ORM\Column(name="position", type="integer")
*/
private $position;

//getters and setters 

public function setPosition($position)
{
  $this->position = $position;

  return $this;
}

public function getPosition()
{
  return $this->position;
}

据我所知,我的实体文件很好

我的services.yaml文件

  //Gedmo
  gedmo.listener.sortable:
    class: Gedmo\Sortable\SortableListener
    tags:
      - { name: doctrine.event_subscriber, connection: default }
    calls:
      - [ setAnnotationReader, [ "@annotation_reader" ] ]

//podcast admin
admin.podcast:
  class: App\Admin\PodcastAdmin
  tags:
    - name: sonata.admin
      manager_type: orm
      label: 'Programa'
      show_mosaic_button: true
  arguments:
    - ~
    - App\Entity\Podcast
    - 'PixSortableBehaviorBundle:SortableAdmin'
  calls:
     - [ setPositionService, ['@pix_sortable_behavior.position']]

我的stof_doctrine_extension.yaml文件

stof_doctrine_extensions:
default_locale: en_US
orm:
  default:
    sortable: true

最后但并非最不重要的是我的PodcastAdmin.php文件

protected function configureRoutes(RouteCollection $collection)
{
  $collection->add('move', $this->getRouterIdParameter().'/move/{position}');
}

protected function configureListFields(ListMapper $listMapper) {
    $listMapper
    ->add('id')
    ->addIdentifier('title')
    ->add('description')
    ->add('author.name')
    ->add('_action', null, [
      'actions' => [
        'move' => [
          'template' => '@App/Admin/_sort.html.twig',
        ],
      ],
    ]);
}

目前,我收到以下错误 第17行的@ SonataAdmin / CRUD / list__action.html.twig中没有名称空间“ App”的注册路径。

如果我将temmplate值切换为@ PixSortableBehavior / Default / _sort.html.twig,则无法看到页面,但操作字段全为空白,没有箭头

1 个答案:

答案 0 :(得分:0)

您可以在twig.yml或任何类似的配置文件中注册App名称空间,这对我有帮助,但不是最佳选择。

app / config / config.yml

twig:
    # ...
    paths:
        "%kernel.root_dir%/path/to/templates": App