如何在Symfony 4实体上创建DateTime?

Leo*_*tos -3 php entity symfony

我有一个名为User的实体,我想创建一个DateTime字段。

我的课:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 */
class User
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=250)
     */
    private $firstName;

     /**
     * @ORM\Column(type="string", length=250)
     */
    private $lastName;

    /**
     * @ORM\Column(type="string", length=250, nullable = true)
     */
    private $userName;

    /**
     * @ORM\Column(type="string", length=50)
     */
    private $email;

    /**
     * @ORM\Column(type="string", length=20)
     */
    private $password;

    /**
     *@Assert\DateTime()
     */
    private $regData;


    // GETTERS AND SETTERS
}
Run Code Online (Sandbox Code Playgroud)

运行时php bin/console doctrine:migrations:diff,出现以下错误消息:

[Semantical Error] The annotation "@Symfony\Component\Validator\Constraints\DateTime" in property App\Entity\User::$regData does not exist, or could not be auto-loaded.
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会收到此错误消息。我以为我的代码是正确的。我正在遵循Symfony 4文档的这一部分。

got*_*oto 5

Assert\DateTime 仅对您的媒体资源施加约束:这意味着,当您提交表单时,如果数据不可转换为日期,则该数据将无效。

您必须使用ORM\Column(type="datetime")for理论将其存储在数据库中。

当然,同时使用两者可以保留和验证数据

  /**
    * @Assert\DateTime()
    * @ORM\Column(type="datetime")
    */
   private $regData;
Run Code Online (Sandbox Code Playgroud)