php - 在 Eloquent 关系中隐藏外国 id 列
问题描述
让我们考虑一下爱因斯坦谜题和这两个模型:
class Pet extends Eloquent
{
public function pet()
{
return hasOne(Man::class)
}
}
class Man extends Eloquent
{
public function pet()
{
return belongsTo(Pet::class)
}
}
如果我想获得所有宠物:
Pet::all()->toArray();
例如,我会得到:
{
id: 2,
man: {
nationality: "German",
pet_id: 2
}
name: "Fish"
}
在这种情况下,拥有该pet_id
列是无关紧要的,我想隐藏它。如何?
解决方案
使用Eloquent API 资源获取模型的数组版本。从长远来看,这比依赖无法配置的模型的 toArray 方法更灵活。
如果您仍然想使用toArray
,您可以简单地将不应包含的属性添加到$hidden
每个相应模型中调用的受保护成员变量中(请参阅有关Eloquent 模型序列化的文档)。
推荐阅读
- c# - 我可以在同样使用相机的 Hololens 中录制应用程序的视频吗?有没有办法做到这两点?
- css - 如果无效,CSS 变量默认为 SVG 填充
- google-cloud-platform - 如何修复 terraform 资源“google_cloud_scheduler_job”的“错误 400:'job.pubsub_target.data' (TYPE_BYTES) 的值无效”
- amazon-web-services - 无服务器授权者作为 AWS 用户池
- c# - 从由 Form 1 创建的 Form 2 更新 Form 1 中的控件
- amazon-dynamodb - 从 AWS Dynamodb CLI 查询 GSI
- java - 如何将 2 个 HashMap 合并在一起?
- python - 满足条件时如何求第一行与该行的时间差?
- python - 如何使用 if 条件捕获函数返回值
- ruby - Parse Recursive Collect Deep Nested Category XML children with parents Ids