#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": приложение