Установите значение для Primay Key с стратегией, установленным на None

StackOverflow https://stackoverflow.com/questions/4291120

  •  28-09-2019
  •  | 
  •  

Вопрос

У меня есть класс субъекта, который выглядит так:

<?php

namespace Entities;

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

На основании доктрины 2 секции генерации генерации генерации:

Нет: сообщает доктрину, что идентификаторы назначены (и, таким образом, генерируются) вашим кодом. Назначение должно происходить до того, как новое предприятие будет передано в EntityManager # сохранить. Ни один не совсем, что оставив @generatedValue полностью.

Это означает, что мне нужен способ, чтобы я мог установить значение до того, как позвонить.

Призыв ./doctrine orm:generate-entities Не будет генерировать функцию сеттера, я должен написать его вручную в классе?

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

Это правильный способ сделать это?

Это было полезно?

Решение

Не существует «правильного» способа сделать это. Команда генерации-объектов - это просто помощник. Ничего, что вы должны использовать. Вы можете сделать, как вы, пожалуйста.

Единственное требование с назначенной стратегией заключается в том, что поле ID должно быть ненулевым, когда вызывается $ EM-> сохраняются ().

Например, в случае назначенного идентификатора имеет смысл сделать его обязательным параметром в конструкторе:

class User
{
    private $no;
    public function __construct($no)
    {
        $this->no = $no;
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top