如何在 Symfony 4 实体上制作日期时间?
How to make a DateTime on Symfony 4 entity?
我有一个名为 User 的实体,我想创建一个 DateTime 字段。
我的class:
<?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
}
当我 运行 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.
我不明白为什么会收到此消息错误。我认为我的代码是正确的。
我正在关注 Symfony 4 文档的这一部分。
好吧,我只需要要求验证器。
我 运行 composer require validator
然后我 运行 php bin/console doctrine:migrations:diff
就成功了。
Assert\DateTime
仅对您的 属性 应用约束:这意味着当您提交表单时,如果数据不是可翻译为日期的内容,则它将无效。
你必须使用 ORM\Column(type="datetime")
学说才能将其存储在数据库中。
当然,同时使用两者来保存和验证数据
/**
* @Assert\DateTime()
* @ORM\Column(type="datetime")
*/
private $regData;
我有一个名为 User 的实体,我想创建一个 DateTime 字段。
我的class:
<?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
}
当我 运行 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.
我不明白为什么会收到此消息错误。我认为我的代码是正确的。 我正在关注 Symfony 4 文档的这一部分。
好吧,我只需要要求验证器。
我 运行 composer require validator
然后我 运行 php bin/console doctrine:migrations:diff
就成功了。
Assert\DateTime
仅对您的 属性 应用约束:这意味着当您提交表单时,如果数据不是可翻译为日期的内容,则它将无效。
你必须使用 ORM\Column(type="datetime")
学说才能将其存储在数据库中。
当然,同时使用两者来保存和验证数据
/**
* @Assert\DateTime()
* @ORM\Column(type="datetime")
*/
private $regData;