设置主键的值,并将策略设置为 NONE

2024-03-11

我有一个实体类,如下所示:

<?php

namespace Entities;

/** @Entity @Table(name="User") */
class User
{
    /**
     * @Id
     * @Column(type="string", length=12)
     */
    private $no;

基于原则 2 标识符生成策略部分:

无:告诉教义 标识符被分配(因此 由您的代码生成)。这 分配必须在 新实体被传递到 EntityManager#persist。无是 与省略相同 完全@GenerateValue。

这意味着,我需要一种方法,以便我可以在调用 persist 之前设置该值。

Calling ./doctrine orm:generate-entities不会生成setter函数,我必须在类中手动编写它吗?

/**
 * Set no
 *
 * @param string $no
 */
public function setNo($no)
{
    $this->no = $no;
}

这是正确的方法吗?


没有“正确”的方法可以做到这一点。生成实体命令只是一个帮助器。没有什么是你必须使用的。你可以随心所欲。

指定策略的唯一要求是,调用 $em->persist() 时 id 字段必须为非空。

例如,在分配 ID 的情况下,将其作为构造函数中的必需参数是有意义的:

class User
{
    private $no;
    public function __construct($no)
    {
        $this->no = $no;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置主键的值,并将策略设置为 NONE 的相关文章

随机推荐