我想设置 id 手册我在我的测试实体中编写此代码:
我可以对像我的代码这样的实体使用 setId() 吗?
我的代码在这里:
/**
* Test
* @ORM\Table(name="test")
*/
class Test
{
/**
* @var int
* @ORM\Column(name="id", type="integer")
*/
private $id;
/**
* @var string
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* Set id
* @param integer $id
* @return Test
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Get id
* @return integer
*/
public function getId()
{
return $this->id;
}
// other methods
}
Run Code Online (Sandbox Code Playgroud)
这是设置 id 的正确方法吗?如果不是,正确和标准的方法是什么?
您可以使用自己的主键,告诉 Doctrine 不要生成值......
/**
* Test
* @ORM\Table(name="test")
*/
class Test
{
/**
* @var int
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\Column(name="id", type="integer")
*/
private $id;
/**
* Set id
* @param integer $id
* @return Test
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
Run Code Online (Sandbox Code Playgroud)
在坚持之前不要忘记 setId !
Doctrine 期望实体的主键在实体被持久化/刷新到数据库(或从数据库获取)后是不可变的(不可更改的)。
您编写的代码在 PHP 方面是完全正确的,但如果您曾经使用过,很可能会破坏教义功能setId()。
如果您对内部结构感兴趣,请查找“学说身份图”
| 归档时间: |
|
| 查看次数: |
4280 次 |
| 最近记录: |