可分类的行为管理清单
编辑该页面可分类的行为管理清单
这是一个完整的工作的例子,如何实现一个可排序的功能在你的奏鸣曲管理清单
背景
一个合适的行为已经可以一对多关系(https://docs.sonata-project.org/projects/SonataDoctrineORMAdminBundle/en/4.x/reference/form_field_definition/ advanced-usage-one-to-many)。然而没有打包的解决方案有一些上下箭头等排序你的记录显示在接下来的屏幕上
的必备条件
配置
- 你已经SonataAdmin DoctrineORM启动并运行
- 你已经有一个实体类,你想实现一个可排序的功能。为目的的例子我们要调用它
客户端
。 - 你已经有一个管理员设置,在这个例子中我们将调用它
ClientAdmin
包
- 安装
gedmo / doctrine-extensions
包在你的项目(检查stof / doctrine-extensions-bundle
更容易集成在您的项目)在你的配置并启用排序功能 - 安装
runroom-packages / sortable-behavior-bundle
至少版本^ 0.16和启用它配置/ bundles.php
菜谱
首先我们要添加一个位置字段客户端
实体:
1 2 3 4 5
/ * * *@Gedmo\ SortablePosition *@ORM\列(name =“位置”,类型=“整数”)* /私人int ?美元位置=零;
然后我们需要注入可分类的侦听器。如果你只有Gedmo包启用,你只需要将侦听器添加到您的services.yaml
文件,并跳过这一步。
1 2 3 4 5 6 7 8 9
#配置/ services.yaml服务:gedmo.listener.sortable:类:Gedmo \可分类的\ SortableListener电话:- - - - - -[setAnnotationReader,(' @annotation_reader '])标签:- - - - - -{名称:doctrine.event_subscriber,连接:默认的}
如果你有stof / doctrine-extensions-bundle
,你只需要启用可分类的功能在你的配置等
1 2 3 4 5 6
#配置/包/ stof_doctrine_extensions.yamlstof_doctrine_extensions:orm:默认值:可分类的:真正的
在我们的ClientAdmin
我们要添加一个自定义的动作configureListFields
方法和使用默认的树枝模板中提供RunroomSortableBehaviorBundle
:
1 2 3 4 5 6 7 8
美元列表- >add (ListMapper::NAME_ACTIONS, ListMapper::TYPE_ACTIONS, (“行动”= > [“移动”= > [“模板”= >“@RunroomSortableBehavior / sort.html.twig”]]]);
为了添加新的路线这些操作和应用正确的分类使用Runroom \ SortableBehaviorBundle \ Admin \ SortableAdminTrait
:
1 2 3 4 5 6 7 8 9 10 11
/ / src / Admin / ClientAdmin.php名称空间应用程序\管理;使用Runroom\SortableBehaviorBundle\管理\SortableAdminTrait;使用奏鸣曲\AdminBundle\管理\AbstractAdmin;最后类ClientAdmin扩展AbstractAdmin{使用SortableAdminTrait;}
定义管理services.yaml
1 2 3 4 5 6 7
#配置/ services.yaml服务:app.admin.client:类:App \ Admin \ ClientAdmin标签:- - - - - -{名称:sonata.admin,model_class:应用实体\ \客户,manager_type:orm,标签:“客户”}
现在我们需要定义合适的行动:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27
/ / src / Admin / ClientAdmin.php名称空间应用程序\管理;使用Runroom\SortableBehaviorBundle\管理\SortableAdminTrait;使用奏鸣曲\AdminBundle\管理\AbstractAdmin;使用奏鸣曲\AdminBundle\数据表格\ListMapper;最后类ClientAdmin扩展AbstractAdmin{使用SortableAdminTrait;受保护的函数configureListFields(ListMapper美元列表):无效{美元列表- >addIdentifier (“名字”)- >add (“启用”)- >add (ListMapper::NAME_ACTIONS, ListMapper::TYPE_ACTIONS, (“行动”= > [“移动”= > [“模板”= >“@RunroomSortableBehavior / sort.html.twig”]]]);}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。