我有一个绑定到 ZF / Laminas 表单的地址实体。
定义了一些属性。比如街道,乡村,......
/**
* @var string
*
* @ORM\Column(type="string", length=2)
*/
protected $country;
/**
* @var float
*
* @ORM\Column(type="float", nullable=true)
*/
protected $longitude;
/**
* @var float
*
* @ORM\Column(type="float", nullable=true)
*/
protected $latitude;
以及通过 EventListener 强制地理定位的非存储属性
/**
* @var bool
*/
protected $geolocation = true;
带访问器
/**
* @param bool $geolocation
*
* @return self
*/
public function setGeolocation(bool $geolocation): self
{
$this->geolocation = $geolocation;
return $this;
}
问题是在通过访问器补水期间。“地理位置”的值来自字符串类型“1”或“0”(复选框)的形式
水合由 DoctrineObject 水合器进行,但属性不由 ORM 管理。因此,启用严格类型模式后,由于 setGeolocation() 参数类型而引发异常。
它应该与 an 一起使用,@ORM\Column(type="boolean")
但我不想存储这个值。
如何定义实体属性而不在 db 中创建列?