Как определить константы для Entity? У меня в проекте определен doctrine entity classuse Doctrine\ORM\Mapping as ORM;
/**
* Filter
*
* @ORM\Table(name="")
* @ORM\Entity
*/
class Filter
{
одно из полей целочисленое как мне определить константы чтоб задавать в коде
$filter->field = Filter::TYPE_BLA
эти константы можно в самом классе энтити определить или для этого делается отдельный класс?
после, когда я делаю фетч и выбираю все строки из БД чтоб вернуть это дело через АПИ, наш АПИ имеет такую штуку... :
class: некий класс
tags:
- { name: ezpublish_rest.output.value_object_visitor, type: здесь нужно указать какого типа класс }
но у меня из БД приходит массив поэтому мне пришлось создать еще один псефдоклассclass Collection {
public $items;
}
пихать в итемс результаты из БД и возвращать его
не нравится мне этот пустой класс, может предложите более красивое решение?

21 Авг 2019 в 07:05
359 +1
0
Ответы
1

Чтобы определить константы для Entity в Doctrine, вы можете определить их в самом классе Entity. Например, вы можете добавить константы напрямую в ваш класс Filter:

/**
* Filter
*
* @ORM\Table(name="")
* @ORM\Entity
*/
class Filter
{
const TYPE_BLA = 1;
const TYPE_FOO = 2;
// Другие константы здесь
// Остальной код сущности здесь
}

Затем вы сможете использовать эти константы в вашем коде, как вы указали:

$filter->field = Filter::TYPE_BLA;

Относительно класса Collection, который вы создали для обработки данных из БД и возвращения их через АПИ, можно предложить другой подход. Вместо создания псевдокласса Collection, который имеет только одно свойство items, вы можете возвращать просто массив результатов из вашего фетча. Например:

$data = []; // Результат из базы данных
return $data;

Это обычно более удобный и простой способ вернуть данные из БД через API, чем создавать дополнительный псевдокласс. Также удостоверьтесь, что ваш API может обрабатывать массивы данных вместо объектов, если это необходимо.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир