假设这是我的实体类:
/**
* @ORMEntity(repositoryClass=TodoRepository::class)
*/
class Todo
{
/**
* @ORMId()
* @ORMGeneratedValue()
* @ORMColumn(type="integer")
*/
private $id;
/**
* @ORMColumn(type="string", length=255,nullable=true)
*/
private $username;
public function getId(): ?int
{
return $this->id;
}
public function getUsername(): ?string
{
return $this->username;
}
public function setUsername(string $username): self
{
$this->username = $username;
return $this;
}
}
我想将字段用户名更改为名称。我可以使用CLI中的原理:schema:update-force函数来实现这一点。这一变化反映在数据库中。但是,如何在实体类方法中反映字段名称的更改?我知道我可以手动完成,但这很乏味。
有什么方法可以动态地做到这一点吗?感谢您的阅读。
您可以使用以下工具:
- symfony/maker捆绑包(用于在实体上生成新字段(
- 条令/条令迁移捆绑包(用于动态创建脚本(
- 原理:映射:导入以从现有数据库生成实体
但如果您想更改项目中已经大量使用的实体,则应该使用智能编辑器。我是通过PHPStorm来做的。重命名name
属性不仅会更新实体,还会更新项目的整个代码。每次出现$user->getUsername()
时,都会更新为$user->getName()
重命名和移动重构适用于文件、函数、常量、类、属性、方法、参数以及局部和全局变量。轻松安全地进行全局项目更改。本地更改立即到位。
以下重构也可用:提取变量/常量/字段/方法/接口、内联变量、向上推成员/向下拉成员、更改签名、将类移动到另一个命名空间、移动静态成员、进行静态重构。