我在Symfony 4 Doctrine orm中具有带有基本字段id, firstname, lastname and password
的User实体。使用find()
方法隐藏密码字段的最简单方法是什么?例如,在Laravel模型中,我们可以这样做
class User extends Model {
protected $hidden = ['password']
...
如果不进行select()
编辑,我找不到合适的解决方案。
谢谢
答案 0 :(得分:1)
我不认为可以,并且如果您通过select指定字段,则不会获得实体,而是获得数据数组。
我认为正确的方法(如果您的最终目标是过滤发送到视图的内容)将是检索整个实体,然后对其进行序列化(如果尚未完成)并排除您没有的属性想要使用序列化组。参见https://symfony.com/doc/current/components/serializer.html#attributes-groups
请注意,如果您要编写API,则可以使用现成的解决方案来处理这些情况(FOSRestBundle是其中一种:https://symfony.com/doc/master/bundles/FOSRestBundle/index.html)
答案 1 :(得分:0)
由于其 EloquentCollections ...等,Laravel 仍然有一个更简单的方法来处理 Json 和序列化
但同样在 Symfony(4 及更高版本)中,您可以使用 @Ignore()
注释忽略字段。
更多详情:ignoring fields
希望对您有所帮助。