Используйте целое число для отношения - PullRequest
0 голосов
/ 22 сентября 2019

Я реализую REST API и хотел бы реализовать быстрый и простой способ создания и сохранения сущностей.

Поэтому я создал такую ​​сущность, где $plain является базовойассоциативный массив:

    public function __construct($plain = null)
    {
        if ($plain != null) {
            foreach ($plain as $k => $v) {
                if (property_exists($this, $k))
                    $this->{$k} = $v;
                else
                    throw new Exception("Property $k does not exist in " . self::class);
            }
        }
    }

    /**
     * @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
     */
    private $parent;

Мой входной интерфейс будет выглядеть примерно так, а затем будет декодирован в массив $plain сверху:

{
    "name": "FooBar",
    "parent": 1
}

При сбросе меня приветствуетСовершенно понятная ошибка Доктрины, говорящая мне, что $parent является целым числом и не является сущностью, как ожидалось.

Я хотел бы отметить, что здесь «родитель» никогда не будет выбираться бэкэндом,когда я создаю новую сущность, все, что я хочу сделать, это написать 1 в столбце parent_id моей базы данных.

Подводя итог, моя цель - заставить доктрину записать идентификатор в базу данных.колонка, без проверки контекста.

Есть идеи?Спасибо!

...