【问题标题】:Convert string to int in JMS Serializer在 JMS 序列化器中将字符串转换为 int
【发布时间】:2018-01-12 16:08:03
【问题描述】:

我有一个字段“价格”类型整数的类,并且该字段具有注释@Type(“整数”)。当请求中的参数“price”带有一个字符串(用户输入一个字符串而不是一个整数)时,JMS Serializer(PHP 也这样做)将此值(字符串值)转换为零(0),因为零是一个integer 验证器不检查此参数并且始终为零。

有人知道 JMS Serializer 的配置不将字符串转换为零 (0)。或任何其他解决方案。

/**
* @JMS\Type("integer")
* @var int
*/
private $price;

【问题讨论】:

  • 当您说“字符串值”时,实际值是多少?是数字吗?
  • 你能分享一下价格字段上应用了哪些 symfony 约束吗?
  • 我想控制这个字段不能包含像“asdasd”这样的字符串,只能包含像12这样的数字。

标签: symfony jmsserializerbundle jms-serializer


【解决方案1】:

您需要在字段上添加约束,例如:

use Symfony\Component\Validator\Constraints as Assert;
/**
* @Assert\Type("integer")
* @var int
*/
private $price;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2016-04-14
    • 2015-02-23
    • 2020-04-08
    • 1970-01-01
    • 2013-06-26
    相关资源
    最近更新 更多