我有一个看起来像这样的Entity类:
<?php
namespace Entities;
/** @Entity @Table(name="User") */
class User
{
/**
* @Id
* @Column(type="string", length=12)
*/
private $no;
基于Doctrine 2标识符生成策略部分:
无:告诉学说 标识符被分配(因此 由您的代码生成)。该 任务必须在a之前进行 新实体传递给 EntityManager的#坚持。没有是 离开了 @GeneratedValue完全。
这意味着,我需要一种方法,以便在调用persist之前设置值。
调用./doctrine orm:generate-entities
不会生成setter函数,我是否必须在类中手动编写它?
/**
* Set no
*
* @param string $no
*/
public function setNo($no)
{
$this->no = $no;
}
这是正确的方法吗?
答案 0 :(得分:3)
没有“正确”的方法来做到这一点。 Generate-entities命令只是一个帮手。没有你必须使用的东西。你可以随意做。
指定策略的唯一要求是,当调用$ em-&gt; persist()时,id字段必须为非null。
例如,在分配ID的情况下,在构造函数中使其成为必需参数是有意义的:
class User
{
private $no;
public function __construct($no)
{
$this->no = $no;
}
}