Symfony 默认情况下,设置easyadmin\u自动完成选择Null。西蒙尼
我想知道是否有任何方法可以在easyadmin_自动完成选择中默认设置Symfony 默认情况下,设置easyadmin\u自动完成选择Null。西蒙尼,symfony,symfony4,symfony2-easyadmin,easyadmin,Symfony,Symfony4,Symfony2 Easyadmin,Easyadmin,我想知道是否有任何方法可以在easyadmin_自动完成选择中默认设置null值 列表中的第一项是选中的,并用数据库中的数据填充,但默认情况下我需要一个null值,并自动设置。目标是第一个指向空结果点的结果点(选择一个…) 你知道怎么做吗 你能想出任何方法来组合下面定义的选项吗 #easy_admin.yml Product: class: App\Entity\Product controller: App\Controller\ProductController
null
值
列表中的第一项是选中的,并用数据库中的数据填充,但默认情况下我需要一个null
值,并自动设置。目标是第一个指向空结果点的结果点(选择一个…)
你知道怎么做吗
你能想出任何方法来组合下面定义的选项吗
#easy_admin.yml
Product:
class: App\Entity\Product
controller: App\Controller\ProductController
new:
fields:
- { property: 'category', label: 'Category', type: 'easyadmin_autocomplete', type_options: { class: 'App\Entity\Category' } }
}
在本例中,一个select有一个带有文本“Any”(Ninguno)的占位符。我需要知道为什么处理它们是不同的。
这些是为yml
的attr字段->type_选项定义的选项:
行动
允许\u额外\u字段
允许上传文件
属性
自动初始化
块名称
参照
阶级
复合物
约束条件
csrf_字段_名称
csrf_信息
csrf_保护
csrf_令牌_id
csrf_令牌_管理器
资料
数据类
残废
空数据
冒泡错误
错误映射
额外\u字段\u消息
帮助
帮助
继承数据
无效的\u消息
无效的\u消息\u参数
标签
标签属性
标签格式
映射
方法
多重
post_max_size_消息
属性路径
必需的
翻译域
修剪
上传\u最大\u大小\u消息
验证组
无法为easyadmin\u autocomplete
设置类似占位符的值。
选择类型的正常方式是使用中所述的占位符
选项。但是,easyadmin\u autocomplete
并没有扩展该类型,它是一个独立的类型。不能将选项类型或实体类型与占位符选项一起使用。easyadmin\u autocomplete
类型的唯一需要是如果有很多实体,并且如果所有实体都加载到页面上,则会减慢应用程序的速度
我的最佳选择是,您可以扩展easyadmin\u autocomplete
。由于easyadmin\u autocomplete
使用EntityType
可以在扩展类型的configureOptions
方法中添加占位符选项。这将把选项委托给EntityType
,但即使如此,它也不会显示在html中,因为select2
javascript也需要修改
如果必须这样做,我推荐扩展类型的方法,添加该选项,并将自定义javascript添加到easyadmin,以处理新类型并添加占位符选项。您可以看到有关如何设置占位符的说明
但是,如果您可以使用实体或选择类型进行选择,则它是首选解决方案。如果设置默认值将是您的解决方案(如零),则服务侦听器可能是一个答案:
// You need to add this listener yourself:
class ProductServiceListener
{
...
// you can manipulate entity in this level as you wish:
public function preUpdate(LifeCycleEventArgs $args)
{
// You will focus to Product entity, so block others:
if (!(get_class($entity) == 'App\Entity\Product')) {
return;
}
// Set whatever default value you want if it's null:
if($entity->getCategory() == null) {
$entity->setCategory(0); // Zero, as an example.
}