Symfony2 Swap 2对象主键Doctrine

时间:2016-01-16 00:56:18

标签: symfony orm doctrine swap

我有自己的实体

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var integer
 *
 * @ORM\Column(name="position", type="integer")
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $position;

Id是主键,但我会按位置对数组进行排序。我想在排序或上下移动时让函数交换2个项目。

如何创建一个构造函数来递增我自动创建的每个新对象?

我试过了:

 /**
 * Constructor
 */
public function __construct()
{
    $this->position = $this->id+1;
}

但是在持久化对象之后分配了Id,因此每个位置都设置为1.我是否需要使用生命周期回调?

1 个答案:

答案 0 :(得分:0)

生命周期回调可以用来做你想做的事情,但你必须要知道,如果你在刷新数据库后修改一个实体,你将不得不再次刷新以保存新信息。