如何定义输入以在 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 中保存浮点数?的主要内容,如果未能解决你的问题,请参考以下文章

easy页面如何显示登录用户名

如何从浮点输入中去除逗号?

如何在 Symfony Easy admin crud 面板中创建下拉选择?

转换浮点数组中的 blend 或 obj 文件以在 OpenGL 中绘图

格式化查询以在 Oracle SQL 中显示浮点小数

c语言中定义浮点变量输入用的整数会报错吗