列表视图
编辑该页面列表视图
你给管理一个接口来创建和编辑博客和类别。但没有多少改变,如果管理员没有所有可用的博客文章的列表。因此,本章将教你更多关于列表视图。
如果您已经创建了一些文章和去http://localhost: 8000 /管理/ app /博客/列表,你会看到一个空列表页面。这并不是因为没有内容,但是因为你没有配置管理的列表视图。奏鸣曲不知道要显示哪些字段,它显示了空行。
配置列表映射器
定义字段(年代)
解决上面的问题并不复杂:你想添加的字段显示在列表视图列表页面:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/ / src / Admin / BlogPostAdmin.php名称空间应用程序\管理;最后类BlogPostAdmin扩展AbstractAdmin{受保护的函数configureListFields(ListMapper美元列表):无效{美元列表- >add (“标题”)- >add (“草案”);}}
将博客管理员的列表视图,您将看到可用的博文:
你可以看到奏鸣曲已经猜测正确的字段类型和确保它显示一种友好的方式。布尔字段例如草案显示为红色“不”块,指示假
。
太酷了!但是…如何管理从这个页面编辑页面的博客吗?似乎没有什么看起来像一个链接。这是正确的,你需要告诉奏鸣曲哪个字段(s)你想作为一个链接。
定义的标识符字段(年代)
字段包含一个链接到编辑页面被称为标识符字段。它是有意义的标题字段编辑页面的链接,所以你可以把它作为一个标识符字段。这是通过使用ListMapper # addIdentifier ()
而不是ListMapper # add ()
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/ / src / Admin / BlogPostAdmin.php名称空间应用程序\管理;最后类BlogPostAdmin扩展AbstractAdmin{受保护的函数configureListFields(ListMapper美元列表):无效{美元列表- >addIdentifier (“标题”)- >add (“草案”);}}
当拯救这个,你现在可以看到标题字段有链接你正在寻找。
显示其他模型
现在你可能还希望类别包含在列表中。要做到这一点,你需要参考它。你不能添加类别
字段映射列表,它将尝试显示实体作为一个字符串。在前面的章节中,您已经了解了,添加__toString
实体是不可取的。
幸运的是,有一个简单的方法来引用其他模型通过使用点符号。使用这个符号,您可以指定你想要显示的字段。例如,category.name
将显示的名字
属性的类别:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/ / src / Admin / BlogPostAdmin.php名称空间应用程序\管理;最后类BlogPostAdmin扩展AbstractAdmin{受保护的函数configureListFields(ListMapper美元列表):无效{美元列表- >addIdentifier (“标题”)- >add (“category.name”)- >add (“草案”);}}
添加过滤器/搜索选项
基本的过滤器
假设您有一个非常成功的博客站点包含许多博客文章。过了一会儿,发现你想要编辑的博客就像找到一个海里捞针。与所有的用户体验问题,奏鸣曲为它提供了一个解决方案!
它允许您配置的datagrid过滤器管理# configureDatagridFilters ()
方法。例如,允许管理搜索博客文章标题(也是通过字母顺序列表中),你会做些什么:
1 2 3 4 5 6 7 8 9 10 11 12 13
/ / src / Admin / BlogPostAdmin.php名称空间应用程序\管理;使用奏鸣曲\AdminBundle\数据表格\DatagridMapper;最后类BlogPostAdmin扩展AbstractAdmin{受保护的函数configureDatagridFilters(DatagridMapper美元数据表格):无效{美元数据表格- >add (“标题”);}}
这将添加一个小块的左边块显示一个搜索输入标题字段。
按类别筛选
过滤到另一个模型的属性是有点困难的。添加字段有4个参数:
1 2 3 4 5 6
公共函数添加(字符串美元的名字字符串,?美元类型= null,数组美元filterOptions=[]数组美元fieldDescriptionOptions= [])
你可以自定义类型用于过滤和用于显示的搜索字段类型“filterOptions美元”的论点。你可以依靠猜测奏鸣曲机制类型选择正确的字段类型。但是,您仍然需要配置搜索领域使用的名字
属性的类别:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24
/ / src / Admin / BlogPostAdmin.php名称空间应用程序\管理;使用应用程序\实体\类别;使用奏鸣曲\AdminBundle\数据表格\DatagridMapper;使用ob娱乐下载\桥\学说\形式\类型\EntityType;最后类BlogPostAdmin扩展AbstractAdmin{受保护的函数configureDatagridFilters(DatagridMapper美元数据表格):无效{美元数据表格- >add (“标题”)- >add (“类别”,零,(“field_type”= > EntityType::类,“field_options”= > [“类”= >类别::类,“choice_label”= >“名字”、]]);}}
这段代码,下拉显示包括所有可用的类别。这样你可以过滤由选定的类别。