Как скрыть определенный столбец в модели/объекте в Symfony 4

У меня есть сущность пользователя с основными полями id, firstname, lastname and password в форме Symfony 4 Doctrine. Как проще всего скрыть поле пароля с помощью метода find()? Например, в модели Laravel мы можем сделать это так:

class User extends Model {

protected $hidden = ['password']
...

Я не могу найти подходящее решение без редактирования select(). Спасибо

Стоит ли изучать 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 и хотите разрабатывать...
1
0
889
2

Ответы 2

Я не думаю, что вы можете, и если вы укажете поля через выбор, вы получите не сущности, а массив данных.

На мой взгляд, правильным способом (если ваша конечная цель состоит в том, чтобы отфильтровать то, что отправляется в ваше представление), было бы получить весь ваш объект, затем сериализовать его (если это еще не сделано) и исключить свойства, которые вы не хотите использовать сериализация группы. См. https://symfony.com/doc/current/components/serializer.html#атрибуты-группы

Обратите внимание, что если вы создаете API, существуют готовые решения для таких случаев (одним из них является FOSRestBundle: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html)

Laravel по-прежнему имеет гораздо более простой подход к работе с Json и сериализацией благодаря своим EloquentCollections... и т.д.
Но также в Symfony (4 и выше) вы можете игнорировать поля, используя аннотацию @Ignore().
Подробнее здесь: игнорирование полей
Надеюсь, вы найдете это полезным.

Я не вижу, что этот ответ приносит, чего не принес мой ответ 2 года назад. Об аннотации игнорирования говорится прямо под разделом групп сериализации, на который я ссылался. Вы могли бы просто оставить комментарий, вместо того, чтобы голосовать против моего ответа. Разговор о плохом менталитете

Aurelien 17.03.2021 09:36

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