首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使原理忽略数据库列前缀?

如何使原理忽略数据库列前缀?
EN

Stack Overflow用户
提问于 2011-08-11 04:48:54
回答 3查看 2.1K关注 0票数 0

通常,我通过这个控制台命令在symfony2/doctrine中创建实体:

代码语言:javascript
复制
$php app/console doctrine:mapping:import TestSiteBundle yml
$php app/console doctrine:generate:entities Test --path=src/

但是我的表列有这样的前缀:

代码语言:javascript
复制
table: user
id_user
id_address (FK)
nm_name
dt_created
bl_active

它会生成这样的实体:

代码语言:javascript
复制
$idUser
$idAdress
$nmName
$dtCreated
$blActive

如何忽略我的列前缀?我需要更改我的整个数据库列名吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-11 06:42:59

根据我的理解,您希望数据库列名为id_user,而entity属性为$user?如果是这样,我认为如果不对核心库进行一些严重的黑客攻击,这是不可能的。基本上,您需要截取生成实体属性的部分,并添加您自己的命名规则。您最好对您的列进行重命名。我的天,这些前缀是不必要的。我会将id_user更改为user_id,将nm_name更改为name,将dt_created更改为created_at,将bl_active更改为is_active。列名和属性名不仅匹配(这是件好事),而且更有意义。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-08-11 07:27:18

我想你可以像这样添加这个名字:

代码语言:javascript
复制
Doctrine\Tests\ORM\Mapping\User:
    fields:
        created:
            name: dt_created
            type: datetime

您可以看到:

票数 2
EN

Stack Overflow用户

发布于 2012-03-31 17:00:11

在对数据库进行逆向工程时,您可以为Doctrine打补丁以剥离前缀。

在集成开发环境中打开此文件:https://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php

  • Add

  • to class DatabaseDriver implements Driver

私有函数分解( $fieldName ){ return implode('_',array_slice( deprefixFieldName(‘_’,$fieldName),1));}

  • 编辑方法:

公共函数setFieldNameForColumn($tableName,$columnName,$fieldName) { /* ADD */ $fieldName = $this->deprefixFieldName($fieldName);$this->fieldNamesForColumns$tableName = $fieldName;}

  • 编辑方法:

私有函数getFieldNameForColumn($tableName,$columnName,$fk = false) { /* ... */ /* ADD */ $columnName = $this->deprefixFieldName($columnName);return Inflector::camelize($columnName);}

我的方法很简单,因为我的前缀都是一致的(我的想法来自Media Wiki ),而你的方法可能会更复杂。

这是Git从工作系统中获取的实际补丁,以防我在描述中犯了一个打字错误:http://pastebin.com/FHeTCUjZ (我想知道帖子中是否允许打补丁)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7017590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档