gpt4 book ai didi

Symfony2 DateTime null 接受

转载 作者:行者123 更新时间:2023-12-02 13:39:34 26 4
gpt4 key购买 nike

所以,我希望能够向我的 DOB 字段发送空选项。

这是我的表单生成器:

->add('birthDate', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd'))

这是我实体中的那些字段

 /**
* @ORM\Column(
* type="date",
* nullable=true
* )
* @JMS\Groups("single")
*
* @var \DateTime
*/
protected $birthDate;

当我尝试发送 null 时,我收到错误消息

Expected argument of type "DateTime", "NULL" given

有什么想法吗?

CRITICAL - Uncaught PHP Exception Symfony\Component\PropertyAccess\Exception\InvalidArgumentException: "Expected argument of type "DateTime", "NULL" given" at /var/www/server.local/vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php line 253 



$type = $trace[$i]['args'][0];
$type = is_object($type) ? get_class($type) : gettype($type);
throw new InvalidArgumentException(sprintf('Expected argument of type "%s", "%s" given', substr($message, $pos, strpos($message, ',', $pos) - $pos), $type));
}

}

最佳答案

在本例中,问题是由 PHP 类型提示引起的。如果您使用类型提示(例如 setBirthDate(\DateTime $value)),那么 PHP 会强制您实际提供一个 DateTime 对象。显然,null不是这样的对象。要解决此问题,可以为 $value 指定一个默认值,如下所示:setBirthDate(\DateTime $value = null)

这是记录的行为,并在 PHP 文档 ( http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration ) 中进行了解释。

相关段落:

To specify a type declaration, the type name should be added before the parameter name. The declaration can be made to accept NULL values if the default value of the parameter is set to NULL.

关于Symfony2 DateTime null 接受,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36598904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com