如何使条令生成的列名在条令2 symfony中以驼峰格式显示?

如何使条令生成的列名在条令2 symfony中以驼峰格式显示?,symfony,doctrine-orm,entities,Symfony,Doctrine Orm,Entities,我在命令行中使用条令生成了一个实体。详情如下:- /** * @var string * * @ORM\Column(name="COUNTRY_ID", type="string", length=2) */ private $cOUNTRYID; 在数据库中,列名为COUNTRY\u ID,SQL结果将给出关联数组,其中COUNTRY\u ID作为键,其名称作为值 我的要求是将SQL结果的显示名称设置为camel大小写。例如,COUNTRY\u ID应该是countryId。条令文

我在命令行中使用条令生成了一个实体。详情如下:-

/**
 * @var string
 *
 * @ORM\Column(name="COUNTRY_ID", type="string", length=2)
 */
private $cOUNTRYID;
在数据库中,列名为
COUNTRY\u ID
,SQL结果将给出关联数组,其中
COUNTRY\u ID
作为键,其名称作为值


我的要求是将SQL结果的显示名称设置为camel大小写。例如,
COUNTRY\u ID
应该是
countryId
。条令文件中是否有可用于执行此操作的配置

如果您的意思是使用display name类属性名,那么您可以这样做:

/**
 * @var string
 *
 * @ORM\Column(name="COUNTRY_ID", type="string", length=2)
 */
private $countryId;
列定义中的
name=“COUNTRY\u ID”
是Dority用于在表中查找它的列名(表列名)


属性名称
$countryId
是条令用于将查询结果绑定到的属性的名称。因此,如果您希望类属性为camel大小写,只需声明属性名称camel cased。

您必须实现一种命名策略,以获得camelCase自动生成的列名,如下所示

创建一个类来获取列名的camelCase名称CamelCaseNamingStrategy.php:


您能用c/p方式处理您的查询吗?SQL结果的显示名称到底是什么意思?好的。我会详细解释。我的实体“TFixed.php”,其内容如下<代码>名称空间RestBundle\Entity;使用条令\ORM\Mapping作为ORM;/***TFixedFees**@ORM\Table()*@ORM\Entity(repositoryClass=“RestBundle\Entity\TFixedRepository”)*/class TFixed{/***@var integer**@ORM\Column(name=“USER\u ID”,type=“integer”)*/private$uSERID;当我执行任何SQL查询时,其结果数组将具有
{'USER\u ID':'67637673}
。但我需要将结果放在camelcase中。谢谢。但是属性名称都是自动生成的,您知道如何将其设置为在camelcase中生成吗?@ManojKumar如果您将表名
COUNTRY\u ID
更改为
COUNTRY\u ID
,它将变成您想要的camelcase。这是一种可能性还是您不能更改表名mes?否则,如果你能在那里找到解决方案,你可以读入……我认为OP生成他的实体(属性名称)从现有数据库中。是否有可能使用命名策略设置类似于
ColumnNameTopProperty
的东西?@Wilt对此不确定,我仍然认为这是关于最终获得camelCase列名的问题。对于你的问题,我想这会起到作用:(不必确定命名策略)
<?php
class CamelCaseNamingStrategy implements NamingStrategy
{
    public function classToTableName($className)
    {
        return 'cc_' . substr($className, strrpos($className, '\\') + 1);
    }
    public function propertyToColumnName($propertyName)
    {
        return $propertyName;
    }
    public function referenceColumnName()
    {
        return 'id';
    }
    public function joinColumnName($propertyName, $className = null)
    {
        return strtolower($propertyName) . ucwords($this->referenceColumnName());
    }
    public function joinTableName($sourceEntity, $targetEntity, $propertyName = null)
    {
        return strtolower($this->classToTableName($sourceEntity)) . ucwords($this->classToTableName($targetEntity));
    }
    public function joinKeyColumnName($entityName, $referencedColumnName = null)
    {
        return strtolower($this->classToTableName($entityName)) . ($referencedColumnName ?: ucwords($this->referenceColumnName()));
    }
}
orm:
    #...
    entity_managers:
        default
            naming_strategy: my_bundle.camel_case_naming_strategy.default