首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当以json形式返回对象时访问雄辩关系

当以json形式返回对象时访问雄辩关系
EN

Stack Overflow用户
提问于 2016-05-09 01:39:08
回答 4查看 3.2K关注 0票数 1

我目前正在使用Laravel/Lumen构建一个JSON,现在尝试访问存储在此模型的关系中的模型属性

代码语言:javascript
复制
// I also want to return User->roles
return User::find(1)->first();

返回:

代码语言:javascript
复制
{
  "id": 2,
  "email": '...'
}

我实际上找到了一种方法,但这似乎是被黑客入侵的,而且不是很干净

代码语言:javascript
复制
    // Get user
    $user = User::find($id)->first();

    // Make roles public
    $user->roles = $user->roles;

    // Return object
    return $user;

返回:

代码语言:javascript
复制
{
  "id": 2,
  "email": '...',
  "roles": [
  ...
  ]
}

有没有更好的方法?或者这是一种安全的东西,你想保护你的数据?但是既然你可以在php中访问这种关系,为什么不把它作为json对象返回呢?

在laravel文档中找不到任何内容

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-09 01:47:33

您可以在您的关系中使用辅助函数with,如下所示:

代码语言:javascript
复制
user::find($id)->with('roles')->first()
票数 9
EN

Stack Overflow用户

发布于 2018-06-03 01:13:01

代码语言:javascript
复制
public function show(User $user) {
        return $user->load('books');
}
票数 3
EN

Stack Overflow用户

发布于 2016-05-09 02:07:23

最短的语法是:

代码语言:javascript
复制
User::with('roles')->find($id);

在这种情况下不需要使用first()

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

https://stackoverflow.com/questions/37102850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档