php - 将对象作为 json 返回时访问 Eloquent 关系

标签 php json laravel eloquent lumen

我目前正在使用 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 文档中找到内容

最佳答案

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

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

关于php - 将对象作为 json 返回时访问 Eloquent 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37102850/

相关文章:

php - 由于ajax调用,javascript倒计时滞后

php - 是否可以使用 mod_rewrite htaccess 将 url 从名称重写为 id。

java - 忽略 JSON Jackson 注释

php - Laravel Eloquent 保存项目错误?

python - 无法保存python脚本文件

php - 使用 PHP 的动态表

java - 无法解析符号 HttpPost

android - 如何在整个android原生应用程序中维护服务器登录?

php - Laravel 使用等于运算符查询 MySQL JSON 列

php - 基于 ID 填充选择框 - PHP