symfony Doctrine -- Ошибка Array to string conversion
Primary tabs
Задача
Сохранить в поле таблицы массив значений. Например, массив Id пользователей, являющихся "друзьями" данного пользователя.
Ошибка
При попытке сохранения в БД при различных вариантах исполнения методов появлялись разные ошибки:
Array to string conversion
FatalThrowableError: Call to a member function contains() on string
An exception occurred while executing 'UPDATE "user" SET friends = ? WHERE id = ?' with params [[25], 26]: Notice: Array to string conversion
Expected value of type "Doctrine\Common\Collections\Collection|array" for association field "AppBundle\Entity\User#$friends", got "integer" instead.
Видимо, сохранить массив в виде array не получится
Решение
Если требуется поместить в свойство объекта массив значений, всегда придётся создавать связанную таблицу с внешним ключом, и работать с массивом значений с помощью класса ArrayCollection.
Например,
Для сохранения информации о друзьях пользователя (User) необходимо создать связь ManyToMany Self-referencing.
Для сохранения информации о жильцах(User) одного дома(House), необходимо создать OneToMany связь.
- Log in to post comments
- 3114 reads