У меня есть сущность пользователя с основными полями id, firstname, lastname and password в форме Symfony 4 Doctrine. Как проще всего скрыть поле пароля с помощью метода find()? Например, в модели Laravel мы можем сделать это так:
class User extends Model {
protected $hidden = ['password']
...
Я не могу найти подходящее решение без редактирования select().
Спасибо






Я не думаю, что вы можете, и если вы укажете поля через выбор, вы получите не сущности, а массив данных.
На мой взгляд, правильным способом (если ваша конечная цель состоит в том, чтобы отфильтровать то, что отправляется в ваше представление), было бы получить весь ваш объект, затем сериализовать его (если это еще не сделано) и исключить свойства, которые вы не хотите использовать сериализация группы. См. 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 года назад. Об аннотации игнорирования говорится прямо под разделом групп сериализации, на который я ссылался. Вы могли бы просто оставить комментарий, вместо того, чтобы голосовать против моего ответа. Разговор о плохом менталитете