我使用的是教义2,我的实体的变量设置如下:
/**
* @ORM\Column(type="string")
*/
protected $phone_number;
/**
* @ORM\Column(type="string")
*/
protected $e_mail;
现在我想用Hydrator从数组填充这个变量,如下所示:
public function fromArray($values)
{
$hydrator = new \Hydrator\ClassMethodsHydrator();
$hydrator->hydrate($values, $this);
}
但是在使用此功能后我得到错误,因为Hydrator试图调用 setphoneNumber()而不是 setPhone_number() ......
你能帮助我如何实现我的目标,而不是将下划线改为camelCase吗?
谢谢
答案 0 :(得分:1)
尝试:
/**
* @ORM\Column(type="string", name="phone_number")
*/
protected $phoneNumber;
在创建数据库架构时,Doctrine会将phoneNumber重命名为phone_number,但是通过使用\ Column或\ Table Definition中的name属性,您可以确保使用您的名称。
所以在数据库表格列中它是:phone_number
您的实体属性被称为:phoneNumber
所以这通常会在你的 setters 的 setPhoneNumber 中结束,这很好。