symfony doctrine

symfony Doctrine -- Cвязанные сущности -- Пример Many To Many связи (с использованием PersistentCollection)

Здесь описан пример, как создать связь("друзей") в таблице User (Пользователи) -- Many To Many (многие ко многим), и в частности Self-referencing (связь данной таблицы с самой собой). Можно будет в контроллере достать всех пользователей - "друзей" данного пользователя.

symfony Doctrine -- PersistentCollection / ArrayCollection -- как работать

Проблема

При работе со связанными сущностями в Symfony, методы getSmth() возвращают PersistentCollection, а не ArrayCollection, несмотря на то, что в конструкторе явно указано создание объекта ArrayCollection.

Решение

Работать с объектом PersistentCollection можно с помощью тех же методов, которые и он, и объект ArrayCollection наследуют у интерфейса Collection: add(), contains(), removeElement(), getValues(), set(), toArray() и другие.

symfony Debug -- как отлаживать Symfony, чтобы программа не "зависала"

Проблема

Возможно вы столкнулись с проблемой, когда при попытке вывести на экран объекта Doctrine с целью отладки, программа "зависает", и приходится перезагружать компьютер.
Например, если вы выводите значение функцией print_r() или var_dump().

Решение

Ипользуйте функцию

dump($var)

Источник

https://habrahabr.ru/post/245623/

symfony Doctrine -- Ошибка Array to string conversion

Задача

Сохранить в поле таблицы массив значений. Например, массив 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

symfony Doctrine -- сохранить поле array в PostgreSQL

При использовании Symfony и Doctrine для генерации сущностей в проекте, а также таблиц в базе данных, иногда возникает противоречие (а точнее потребность в универсализации) типов данных, предлагаемых Doctrine и вашей базой данных.

Если вам требуется сохранить свойство с типом данных массив, для PostgreSQL описание будет выглядеть так:

symfony Doctrine -- Связанные сущности -- Пример One To Many связи (с использованием ArrayCollection)

Здесь описан пример, как настроить связь между таблицами House (Дома) и User (Жильцы) -- One To Many (один ко многим), и чтобы она работала. Можно будет обращаться к объекту Дома через объект Жильца, и наоборот.

Создаём связанные таблицы с помощью аннотаций в Entity :

Класс User (Жильцы):

Subscribe to RSS - symfony doctrine