Установите значение для Primay Key с стратегией, установленным на None
-
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;
}
}