在带有Doctrine2的Symfony2上,Object = Entity吗?

lep*_*pix 4 php entity object symfony doctrine-orm

假设我有一User节课:

$user = new User(1);
$user->setName('Bob'); // save "bob" to database with ID 1
$user->setGender('Male'); // save "male" to database with ID 1

echo $user->getName(); // display bob
echo $user->getGender(); // display "male";

echo $user->getDesignation() // display "Mr. Bob"
Run Code Online (Sandbox Code Playgroud)

现在,在Symfony2中,使用Doctrine2,它似乎Entity是一个用于与数据库建立链接的对象.所以,我认为所有的setName(),setGender(),getName()getGender()功能应该去一个文件,该文件是在里面Entity一包的目录(因为这些功能从数据库更新或SELECT数据).

但那怎么样getDesignation()

public function getDesignation() {
  if ($this->getGender() == 'Male') return "Mr. ".$this->getName();
  else return "Ms. ".$this->getName();
}
Run Code Online (Sandbox Code Playgroud)

可以在实体中放置一个与数据库完全没有链接的函数吗?这不是一个坏习惯吗?

hak*_*kre 6

可以放置一个绝对没有与数据库链接的功能吗?

是的,没关系.但仔细观察,它仍然在某种程度上与数据库"链接",因为它利用了最初来自持久层(数据库)的性别和名称数据.

这不是一个坏习惯吗?

这根本不是不好的做法,事实上它是非常有用的.它可以帮助您在模型对象中使用持久层,同时将代码与数据库访问分离.