Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Symfony5 -只从实体中恢复几个字段

Symfony5 -只从实体中恢复几个字段
EN

Stack Overflow用户
提问于 2020-12-04 05:39:00
回答 2查看 255关注 0票数 1

我想要创建一个路由,它将返回我的一个实体的列表,其中只有一些字段。

我认为它可以通过序列化组来实现,但也许这不是最简单的方法。

因此,我想简单地添加一个名为special_get的新的自定义路由,以便对normalization_group user:special进行测试,如下所示:

代码语言:javascript
运行
AI代码解释
复制
/**
 * @ApiResource(
 *     attributes={
 *          "normalization_context"={"groups"={"user:read", "user:list", "user:special"}},
 *          "denormalization_context"={"groups"={"user:write"}},
 *          "order"={"availabilities.start": "ASC"}
 *     },
 *     collectionOperations={
 *          "get"={
 *              "mehtod"="GET",
 *              "security"="is_granted('ROLE_USER')",
 *              "normalization_context"={"groups"={"user:list"}},
 *          },
 *        "special_get"={
 *             "method"="GET",
 *             "path"="/user/specialroute",
 *             "normalization_context"={"groups"={"user:special"}}
 *        },
 *     }
 * )
 * @ORM\Entity(repositoryClass=UserRepository::class)
 */

并仅将此group应用于我希望返回的几个字段:

代码语言:javascript
运行
AI代码解释
复制
    /**
     * @ORM\Column(type="boolean")
     * @Groups({"user:read", "user:list", "user:write", "user:special"})
     */
    private $firstName;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     * @Groups({"user:write", "user:read", "user:list",  "user:special"})
     */
    private $photo;

    /**
     * @ORM\OneToMany(targetEntity=Availability::class, mappedBy="entityname", cascade={"remove"})
     * @Groups({"user:read", "user:list", "user:write"})
     * @ApiSubresource()
     */
    private $availabilities;

这确实为我在swagger界面上创建了一个我想要的新路径,但是我得到了一个500,上面写着:

代码语言:javascript
运行
AI代码解释
复制
An error occured
Cannot select distinct identifiers from query with LIMIT and ORDER BY on a column from a fetch joined to-many association. Use output walkers.*

有没有人知道这个错误是从何而来的?

或者,如果有更好的方法来实现只恢复几个字段,在一个特殊的路径上形成一个实体?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-04 06:32:20

因此,关于错误消息,您的问题是order属性中的orders由availabilities.start属性导致,而该属性没有添加到您的规范化组中。

所以你必须在这里找到方法:

  • availabilities属性添加到规范化组
  • 删除此属性

据我所知,api-platform目前不支持为每个操作排序属性,似乎不应该

票数 1
EN

Stack Overflow用户

发布于 2022-06-29 02:10:43

您可以使用PropertyFilter,以便选择特定的字段

启用过滤器:

代码语言:javascript
运行
AI代码解释
复制
* @ApiFilter(PropertyFilter::class)

导入类use ApiPlatform\Core\Serializer\Filter\PropertyFilter;

现在,您可以使用以下查询筛选序列化属性:

代码语言:javascript
运行
AI代码解释
复制
?properties[]=title&properties[]=shortDescription

您可以根据需要添加任意数量的属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65144601

复制
相关文章
css中绝对定位_绝对定位和相对定位怎么用
bottom属性描述时,以首屏页面左下角为参考点 如果浏览器不动,滚动条动的时候,红色盒子跟随页面动,红绿盒子间距不变。
全栈程序员站长
2022/11/17
2.7K0
css中绝对定位_绝对定位和相对定位怎么用
【CSS】绝对定位元素设置 水平 / 垂直 居中 ( 绝对定位元素居中设置 - 先偏移 50% 再回退子元素一半尺寸 | 绝对定位居中设置 )
绝对定位 不能通过 设置 margin: auto; 样式的方式 , 设置盒子模型水平居中 ;
韩曙亮
2023/04/16
3.4K0
【CSS】绝对定位元素设置 水平 / 垂直 居中 ( 绝对定位元素居中设置 - 先偏移 50% 再回退子元素一半尺寸 | 绝对定位居中设置 )
【CSS】定位 ④ ( 绝对定位特点 | 相对定位不脱标示例 | 绝对定位脱标示例 )
如果 绝对定位 的元素 的 父级元素 没有定位 , 那么会 一直向上查找有定位的父级元素 , 直到浏览器 ;
韩曙亮
2023/04/16
1K0
【CSS】定位 ④ ( 绝对定位特点 | 相对定位不脱标示例 | 绝对定位脱标示例 )
水平滚动条
主要用到并排Div 的父级设置white-space: nowrap,并排的div设置display:inline-block;
tianyawhl
2019/07/16
2.6K0
杂谈一:前端设置绝对定位后滚动条失效的解决办法
问题 微信小程序开发中为父元素设置背景图,子元素不能滚动 公共css样式 <style> .fu{ background:url("https://xxx.png"); width:100%; height:100vh; background-size: 100% 100%; background-repeat: no-repeat; z-index: -999; position: fixed; } .zi{ width:70%; height:
用户8988577
2022/12/27
2K0
[iOS] WSHorizontalPickerView 图片水平滚动封装
之前这篇文章传送门本来是记录自己练手的demo的,后来很多人来问我要代码。今天就抽时间封装了一下,没有考虑太多情况,等我有空再去仔细考虑吧。
wOw
2018/09/18
3K0
绝对定位下的盒模型
元素被绝对定位,那么元素将会脱离正常流(normal flow),并依据包含块来定位。包含块的概念及其判定可以看这里。 在负margin的应用一文中,我们提到了一个对于任意一个块元素所形成的框的尺寸的计算公式:   BoxWidth = MarginLeft + BorderLeftWidth + PaddingLeft + ContentWidth + PaddingLeft + BorderRightWidth + MarginRightWidth; 但是在含有绝对定位元素的包含块内,包含块的尺寸却不能
欲休
2018/03/15
8650
WPF 让 TextBox 支持水平滚动
超级简单的方法,只需要设置 HorizontalScrollBarVisibility 可见就可以了
林德熙
2022/08/12
9840
css绝对定位与相对定位结合使用_css定位方法
绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。 相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。—(w3cSchool)
全栈程序员站长
2022/11/16
1.2K0
有意思的水平横向溢出滚动
最近接到一个很有意思的需求,能否做到当内容横向溢出时,依然能够使用鼠标滚轮对内容进行滚动的方法。
Sb_Coco
2022/09/28
2.6K0
有意思的水平横向溢出滚动
绝对定位多个字居中显示的css
在工作中遇到一种情况,例如把一个div元素绝对定位到一个位置,但是该元素中的文字个数不确定,还要保证始终该文字是居中显示,则可以定义两个div,外层div绝对定位并加一个宽度,内层div居中 .box03 .percent { position: absolute; right: 31%; top: 12%; width: 100px; font-family: arial;
蓓蕾心晴
2018/04/12
1.6K0
【CSS】定位 ⑤ ( 子元素绝对定位 父元素相对定位 | 代码示例 )
此时就要求父容器必须稳定 , 如果父容器使用了 绝对布局 , 父容器就不会保留位置 ,
韩曙亮
2023/04/16
2K0
【CSS】定位 ⑤ ( 子元素绝对定位 父元素相对定位 | 代码示例 )
CSS 定位布局 - 相对、绝对、固定三种定位
文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。
Devops海洋的渔夫
2019/05/31
3.6K0
一种绝对提高开发水平的方法
如果做了多年开发的你发现自己的水平一直上不去,你可能要提高自己的英文水平了,英语就是你技术的瓶颈,对有些人可能是硬伤。
张果
2018/07/31
9.2K2
一种绝对提高开发水平的方法
一种绝对提高开发水平的方法
AntConc 使用工具软件可以把一本电子档中的单词全部提取出来,并分析其出现频率
IT小马哥
2020/03/18
5310
RecyclerView滚动到指定位置
1、mLayoutManager private void moveToPosition(int position) { if (position >= 0) { mLayoutManager.scrollToPositionWithOffset(3, 0); } } 2、LinearSmoothScroller mTopSmoothScroller = new TopSmoothScroller(getActivity()); priva
用户9854323
2022/06/25
1.8K0
vue css 滚动楼层导航定位
理解滚动图 左右结构 <template> <div> <div class="floor-nav"> <ul class="nav-list"> <li
solate
2021/03/05
3.1K0
vue css 滚动楼层导航定位
点击加载更多

相似问题

屏外绝对定位分区导致水平滚动

43

CSS:绝对定位元素导致滚动

130

水平滚动一个绝对定位的元素?

16

如何避免绝对定位div引起的水平滚动

14

负位置:绝对导致iPad上的水平滚动

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档