PHP Hydrator ClassMethods Hydrator下划线替换为导致错误的camelCase


PHP HydratorClassMethodsHydrator underscore replacing to camelCase which cause error

我使用的是条令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()而不是set Phone_number()。。

你能帮助我如何实现我的目标,而不是将下划线改为camelCase吗?

感谢

尝试:

 /**
 * @ORM'Column(type="string", name="phone_number")
 */
protected $phoneNumber;

在创建数据库架构时,Doctrine会将您的phoneNumber重命名为phone_number,但通过使用''Column或''Table Definition中的name属性,您可以确保使用了您的名称。

因此,在数据库表列中,它是:phone_number

您的实体属性被称为:phoneNumber

因此,这通常会在setPhoneNumber中结束,用于setter,这很好。