Список сортировки администратора Sonata, поля пустые

#symfony4 #sonata-admin #sonata

#symfony4 #sonata-администратор #sonata

Вопрос:

Я пытаюсь создать простую систему сортировки для одной из моих таблиц в пакете администрирования sonata, я следовал этому руководству ( https://symfony.com/doc/master/bundles/SonataAdminBundle/cookbook/recipe_sortable_listing.html#the-recipe ) и все же я не способен это сделать.

Я тщательно выполнил каждый из шагов, но в моей таблице администратора я вижу только пустое поле действия, в нем нет стрелок.

Я искал и просматривал статьи, но не добился никакого успеха, я чувствую, что я очень близок к разгадке.

Вот мой src/Entity/Podcast.php файл

 /**
* @GedmoSortablePosition
*@ORMColumn(name="position", type="integer")
*/
private $position;

//getters and setters 

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

  return $this;
}

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

Насколько я знаю, мой файл сущности в порядке

мои сервисы.файл yaml

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

//podcast admin
admin.podcast:
  class: AppAdminPodcastAdmin
  tags:
    - name: sonata.admin
      manager_type: orm
      label: 'Programa'
      show_mosaic_button: true
  arguments:
    - ~
    - AppEntityPodcast
    - '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',
        ],
      ],
    ]);
}
  

Поскольку прямо сейчас я получаю следующую ошибку
В @SonataAdmin/CRUD/list__action.html.twig в строке 17 нет зарегистрированных путей для пространства имен «App».

И если я переключу значение template на @PixSortableBehavior / Default /_sort.html.twig, я смогу увидеть страницу, но поле действия полностью пустое, стрелок нет

Ответ №1:

Вы можете зарегистрировать пространство имен приложения в twig.yml или любом другом файле конфигурации, подобном этому, это помогло мне, но не оптимально.

app /config/config.yml

twig:
 # ...
 пути:
 "%kernel.root_dir%/path/to /templates": приложение