ORM关联关系隐藏属性

1. 运行环境

lmnp

1). 当前使用的 Laravel 版本?

2). 当前使用的 php/php-fpm 版本?

PHP 版本:
7.4

php-fpm 版本:

7.4

3). 当前系统

CentOS 8

2. 问题描述?

在ORM中使用关联关系吗,关联的ORM模型有一个追加属性,我想隐藏该属性,我尝试使用 makeHidden(),但未取得如期效果

ORM关联关系隐藏属性

ORM关联关系隐藏属性

3. 您期望得到的结果?

ORM关联关系隐藏属性

4. 您实际得到的结果?

我尝试过这两种makeHidden()但都没有生效,是不是不支持在关联模型上使用makeHidden()
ORM关联关系隐藏属性

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 5

关联使用makeHidden会报错, 用select()指定查询字段吧

1年前 评论
Not404 (楼主) 1年前
周小云 1年前

解决方案:考虑在 Order 模型中添加隐藏属性 protected $hidden = ['type'];

  1. 隐藏属性是在 toArray () 等数据处理阶段起作用的,不管在哪个位置位置添加隐藏属性,都是在最后的数据处理阶段起作用;
  2. 隐藏属性作用于模型字段,同时可作用于关联模型字段,但是不支持嵌套字段;
  3. 通常情况下,关联属性可通过 with 关键字返回,如果不想展示某个关联字段,是否可以考虑直接在 with 中去掉即可?
1年前 评论

使用with() $record = $platformRepository->relation('platform')->with(['shop:id,platform_id,short_name'])->get(['id','name','code']); return $this->success(compact('record'));

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!