Doctrine数组水合与数据库列名键


Doctrine Array Hydration with db column names keys

使用最新条令(2.4)给定这个简单的实体:

class Booking
{
    /**
     * @var integer
     * @ORM'Id
     * @ORM'Column(type="integer")
     * @ORM'GeneratedValue(strategy="AUTO")
     */
    protected $id;
    /**
     * @var 'DateTime
     * @ORM'Column(name="from_date", type="datetime", nullable=true)
     */
    protected $fromDate;
    /**
     * @var float
     * @ORM'Column(name="deposit_price", type="float", nullable=true)
     */
    protected $depositPrice;
}

如果我用数组水合做一个简单的ORM查询,我得到的结果是这样的:

[
   'id'=>1,
   'depositPrice'=>100.5,
   'fromDate'=>'2012-01-01'
]

有没有一种简单的方法可以使用实际的柱场进行水合?要得到这样的结果:

[
    'id'=>1,
    'deposit_price'=>100.5,
    'from_date'=>'2012-01-01'
]

有三种解决方案:

  • 你可以定制水合作用,随心所欲
  • 您可以使用本机查询和结果集映射
  • 您可以在Entity类中重命名字段

我更喜欢第三种情况。重命名字段非常容易。您可以在所有带有正则表达式的文件上执行此操作(如果IDE支持)。