无法将 PHP 值转换为日期类型。预期以下类型之一:null,DateTime [关闭]

Posted

技术标签:

【中文标题】无法将 PHP 值转换为日期类型。预期以下类型之一:null,DateTime [关闭]【英文标题】:Could not convert PHP value to type date. Expected one of the following types: null, DateTime [closed] 【发布时间】:2021-12-06 11:24:37 【问题描述】:

我使用 fakerphp 创建了固定装置以生成假出生日期,但无法加载固定装置文件并收到此错误消息:无法将 PHP 值 '1970-01-01' 转换为类型日期。应为以下类型之一:null、DateTime。你知道我应该修改什么吗?

这是我的 php 实体文件代码的一部分:


/**
 * @ORM\Column(type="date")
 */
private $birthDate;


public function getId(): ?int

    return $this->id;


public function getEmailAddress(): ?string

    return $this->emailAddress;


public function setEmailAddress(string $emailAddress): self

    $this->emailAddress = $emailAddress;

    return $this;


public function getBirthDate(): ?string

    return $this->birthDate;


public function setBirthDate(string $birthDate): self

    $this->birthDate = $birthDate;

    return $this;


还有我的固定装置:

public function load(ObjectManager $manager):void

    $faker = Factory::create(('fr_FR'));
    $faker->seed(1234);

    for ($i = 0; $i <= 20; $i++) 
        $member = new Member();

        $member->setEmailAddress('user@test.com');
        $member->setFirstName($faker->firstName());
        $member->setLastName($faker->lastName());
        $member->setbirthDate($faker->date($format ='Y-m-d', $max = '2004-31-12'));
        $member->setPostalAddress($faker->address());

        $password = $this->encoder->encodePassword($member, 'password');
        $member->setPassword($password);
    

    $manager->persist($member);
    $manager->flush();


【问题讨论】:

date 方法创建一个 string 值。请改用$faker-&gt;dateTime 已经尝试使用$faker-&gt;dateTime,但仍然出现错误:App\Entity\Member::setBirthDate(): Argument #1 ($birthDate) must be of type string, DateTime given, called in /src/DataFixtures/MemberFixtures.php on line 35 【参考方案1】:

birthDate 类型是“日期”,在你的设置器中你给一个字符串 您必须将您的设置器更改为此 -> setBirthDate(\DateTimeInterface $birthDate)

【讨论】:

非常感谢!我想我以前试过这个,但也应该更新我的吸气剂,给\DateTimeInterfacetype Code is alays details

以上是关于无法将 PHP 值转换为日期类型。预期以下类型之一:null,DateTime [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

无法将“字符串”类型的值转换为预期的参数类型 [任何]

无法将“NSMutableArray”类型的值转换为预期的参数类型“[SKTexture]”

错误:无法将类型“(_)->()”的值转换为预期的参数类型“(()-> Void)?”

无法将“字符串”类型的值转换为预期的参数类型“布尔”

无法将 Float 类型的值转换为预期的参数类型 NSNumber

无法将“testViewController.Type”类型的值转换为预期的参数类型“UIViewController”