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关联关系隐藏属性

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 5

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

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

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

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

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

2年前 评论

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