繁体   English   中英

将对象返回为json时访问雄辩的关系

[英]Access eloquent relationships when return object as json

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

// I also want to return User->roles
return User::find(1)->first();

返回值:

{
  "id": 2,
  "email": '...'
}

我实际上找到了一种方法,但这似乎被黑了,而且不干净

    // Get user
    $user = User::find($id)->first();

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

    // Return object
    return $user;

返回值:

{
  "id": 2,
  "email": '...',
  "roles": [
  ...
  ]
}

有没有更好的办法? 还是您想保护数据的这种安全性? 但是既然可以在php中访问该关系,为什么不应该将它作为json对象返回呢?

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

您可以在关系中使用helper函数with例如:

user::find($id)->with('roles')->first()

最短的语法是:

User::with('roles')->find($id);

在这种情况下,无需使用first()

尝试这个:

$user = User::with('roles')->where('id',  $id)->first();
public function show(User $user) {
        return $user->load('books');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM