EasyAdmin关联字段
编辑该页面EasyAdmin关联字段
这个字段显示的内容属性用于关联主义实体之间(任何类型的:一对一、一对多等)在表单页面这个字段是使用一个先进的自动完成呈现小部件的基础上TomSelect图书馆。
在表单页面(编辑和新)它看起来像这样:
在只读页面(指数
和细节
)是显示为可点击的链接指向细节
行动相关的实体。
基本信息
- PHP类:
EasyCorp
\包 \ EasyAdminBundle \领域 \ AssociationField - 教义DBAL类型用于存储这个值:
整数
,guid
你使用存储或任何其他类型的ID相关联的实体 - ob娱乐下载Symfony表单类型用于呈现字段:EntityType
呈现为:
1 2
< !——在装载页面时这是转化为一个动态的领域通过JavaScript - - ><选择>…< /选择>
选项
自动完成
默认情况下,现场加载的所有可能值相关的实体。这就产生了“内存溢出”错误当实体有成百上千的值。使用这个选项动态负荷值(通过Ajax请求)基于用户输入:
1
收益率AssociationField::新(“……”)- >自动完成();
renderAsNativeWidget
默认情况下,这个字段是使用先进的JavaScript小部件创建呈现TomSelect图书馆。如果你喜欢来显示一个标准<选择>
元素,使用这个选项:
1
收益率AssociationField::新(“……”)- >renderAsNativeWidget ();
setCrudController
在只读页面(指数
和细节
)这个字段显示为一个可点击的链接指向细节
页面相关的实体。
默认情况下,EasyAdmin发现CRUD自动控制器相关的实体。然而,如果你定义一个以上的CRUD控制器实体,您需要使用这个选项指定要使用哪一个链接:
1
收益率AssociationField::新(“……”)- >setCrudController (SomeCrudController::类);
setQueryBuilder
默认情况下,EasyAdmin使用一个通用的数据库查询找到的物品相关的实体。使用这个选项如果你需要使用一个自定义查询过滤结果或者在一些特定的方式排序。
类似于query_builder选项Symob娱乐下载fony的EntityType
这个选项的值可以是一个学说\ ORM \ QueryBuilder
对象或一个可调用的
。
您可以使用QueryBuilder
当自定义查询对象是短暂的而不是在应用程序中重用其他地方:
1 2 3 4 5 6 7 8 9
/ /获取实体库以某种方式…美元someRepository=美元这- >entityManager- >getRepository (SomeEntity::类);收益率AssociationField::新(“……”)- >setQueryBuilder (美元someRepository- >createQueryBuilder (“实体”)- >(在哪里的实体。some_property =: some_value)- >setParameter (“some_value”,“……”)- >orderBy (“entity.some_property”,“ASC”));
使用时更方便调用自定义查询是复杂的和已经定义的实体库,因为他们是在应用程序的其他部分中重用。当使用一个可调用的QueryBuilder
自动注射Symfony作为第一个参数:ob娱乐下载
1 2 3
收益率AssociationField::新(“……”)- >setQueryBuilder (fn (QueryBuilder美元queryBuilder)= >美元queryBuilder- >addCriteria (“……”));
或者如果你喜欢使用存储库的实体:
1 2 3
收益率AssociationField::新(“……”)- >setQueryBuilder (fn (QueryBuilder美元queryBuilder)= >美元queryBuilder- >getEntityManager ()- >getRepository (Foo::类)- >findBySomeCriteria (););
renderAsEmbeddedForm
默认情况下,一个组织中呈现形式的下拉菜单,您可以选择一个给定的值。例如,一篇博客文章中与一位作者将显示一个下拉列表中选择一个可用的作者。
然而,有时是指相关的属性值对象。例如,一个客户
一个相关的实体地址
实体或服务器
一个相关的实体ipaddr
实体。
在这些情况下,它没有意义,显示一个下拉(潜在的上百万!)地址。相反,它是更好地嵌入表单字段相关的实体(如。地址
)的形式你创建或编辑的实体(如。客户
)。
的renderAsEmbeddedForm ()
选项告诉EasyAdmin嵌入的CRUD形式相关的属性,而不是显示所有可能的值的一个下拉:
1
收益率AssociationField::新(“……”)- >renderAsEmbeddedForm ();
EasyAdmin查找CRUD控制器自动相关属性。如果你需要更好地控制哪些CRUD使用控制器,通过控制器的完全限定类名作为第一个参数:
1 2 3 4 5 6 7 8
收益率AssociationField::新(“……”)- >renderAsEmbeddedForm (CategoryCrudController::类);/ /页面名称的其他可选参数传递到configureFields ()/ /方法的CRUD控制器(这允许您有更好的控制/ /字段显示在不同的场景)收益率AssociationField::新(“……”)- >renderAsEmbeddedForm (CategoryCrudController::类,“create_category_inside_an_article”,“edit_category_inside_an_article”);