Использование / расширение Doctrine Entities

Я новичок в доктрине ORM, и я пытаюсь понять, где добавить код и т. д.

Скажем, у меня есть объект "Пользователь":

src/Entity/User.php

class User
{
    /**
     * @var int
     *
     * @ORM\Column(name = "user_id", type = "integer", nullable=false, options = {"unsigned"=true})
     * @ORM\Id
     * @ORM\GeneratedValue(strategy = "IDENTITY")
     */
    private $userId;

    /**
     * @var int
     *
     * @ORM\Column(name = "group_id", type = "smallint", nullable=false, options = {"unsigned"=true})
     */
    private $groupId = '0';

    /**
     * @var string
     *
     * @ORM\Column(name = "username", type = "string", length=20, nullable=false)
     */
    private $username;
    ...

Это нормально, если я хочу получить пользователя на основе идентификатора и т. д. Я могу использовать диспетчер сущностей для выполнения $ em-> find ('User', 1);

Я хочу добавить некоторую логику, чтобы проверить, является ли пользователь пользователем с правами администратора (например, $ user-> isAdmin ()). Куда бы это добавить? В репозиторий, прокси или просто расширив класс сущности User (например, создайте класс сущности UserBase и попросите пользователя расширить его)?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша пользовательская сущность должна реализовывать пользовательский интерфейс Symfony и уже иметь возможность делать такие вещи, как проверка ролей, пароля и т. д.

Для другой информации: - Используйте объект для выполнения некоторых операций с данными, которые уже загружены объектом. Например, вы можете добавить метод getFullName () - Используйте репозиторий для операций с базой данных, например, если вы хотите получить список пользователей с некоторыми правилами сортировки, условиями и т. д.

Итак, чтобы ответить на ваш вопрос, в сущности должен быть такой метод, как isAdmin ().

Спасибо, я не упомянул Symfony (я не использую его), но я посмотрю, как добавить эти методы в сущность

Noodles 22.08.2018 01:12

Другие вопросы по теме