我正在尝试在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,则无法看到页面,但操作字段全为空白,没有箭头
答案 0 :(得分:0)
您可以在twig.yml或任何类似的配置文件中注册App名称空间,这对我有帮助,但不是最佳选择。
twig: # ... paths: "%kernel.root_dir%/path/to/templates": App