如何定义输入以在 Easy admin 中保存浮点数?
Posted
技术标签:
【中文标题】如何定义输入以在 Easy admin 中保存浮点数?【英文标题】:How to define an input to save float in Easy admin? 【发布时间】:2019-10-30 06:20:22 【问题描述】:我在 Symfony 4 上。我会保存一个十进制条目,并且 Easy admin 说“这个值必须是字符串”,它会在 html 中生成一个文本输入。
我尝试不更改类型并将类型也设置为数字。我也尝试将比例选项设置为“强制”该类型,但它继续询问我一个字符串......
easy_admin.yaml
- property: 'points', label: 'BO.label.points', type: 'number'
我的实体的财产
/**
* @var float|null
* @ORM\Column(type="decimal", nullable=false, precision=12, scale=3, options="default":0)
* @Gedmo\Versioned
*/
private $points;
我会保存我的价值。我写 3 的时候不行,因为 Easy Admin 正在等待一个纯字符串。
编辑:我将这些选项添加到我的号码类型中:
- property: 'points', label: 'BO.label.points', type: 'number', type_options: html5: true, input: 'number'
无论如何,Easy Admin 总是询问一个字符串。有什么想法吗?
感谢您的帮助。
【问题讨论】:
在easy_admin.yaml 的“type”属性中,我什至在docs 中都没有看到"number"
选项。您是否尝试设置为 'decimal'
以匹配您的实体?
感谢您的回答。这是用于添加或编辑我的实体的表单类型。我使用十进制类型在列表中显示我的元素。对于表单,我相信它使用与 Symfony 完全相同的类型。我收到“十进制”类型的错误。已经在 Symfony 4 中为“NumberType”尝试了“number”,但是当我想保存它时它不起作用。
我看到我有以下数字类型选项:- property: 'points', label: 'BO.label.points', type: 'number', type_options: html5: true, input : 'number' 但简单的管理员总是询问一个字符串。有什么想法吗?
【参考方案1】:
如果我“覆盖”实体中的默认约束似乎没问题。
如果我这样写我的财产:
/**
* @var float|null
* @ORM\Column(type="decimal", nullable=false, precision=12, scale=3, options="default":0)
* @Assert\Type(type="float", message = "The value value must be of type type ")
* @Gedmo\Versioned
*/
private $points;
所以,当我使用浮点类型指定 Assert\Type 时,我的值被正确保存。
希望对其他人有所帮助。
【讨论】:
以上是关于如何定义输入以在 Easy admin 中保存浮点数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Symfony Easy admin crud 面板中创建下拉选择?