php - 如何查询数据库中的所有用户及其相关数据?

标签 php mysql json laravel laravel-4

从任何表返回数据都非常简单。 比方说:

  • 我想以 json 格式从我的 user 表中检索数据。
  • 我可以简单地做到这一点。 return Response::json(User::all());

但是,如果我想从我的用户表 ALL 中以 json 格式返回 相关 数据怎么办。

我该怎么做? 是否有任何 Laravel 机制可以帮助我做到这一点? 是否有任何 php 函数可以做到这一点?

如果你们中的任何人对此有任何经验,并且愿意分享,请随意。

感谢您的宝贵时间。 :)

最佳答案

您可以使用 with() 方法预先加载关系:

return Response::json(User::with('address', 'phones')->get());

但是,您必须手动指定所有关系(即您必须指定“地址”和“电话”)。据我所知,没有以编程方式确定关系的内置方法。

编辑

您应该能够链接 with() 调用,或者在一个 with() 调用中指定所有关系。以下语句应该都是等价的:

// chaining with statements
return Response::json(User::with('address')->with('phones')->get());

// passing all relationships as strings
return Response::json(User::with('address', 'phones')->get());

// passing in array of all relationships
return Response::json(User::with(array('address', 'phones'))->get());

此外,要传入的关系的名称是定义关系的函数的名称。所以,如果你有以下类(class):

class User extends Eloquent
{
    public function distributor()
    {
        return $this->hasOne('Distributor');
    }

    public function download()
    {
        return $this->hasOne('Download');
    }

    public function log()
    {
        return $this->hasOne('Log');
    }
}

你的电话看起来像:

return Response::json(User::with('distributor', 'download', 'log')->get());

关于php - 如何查询数据库中的所有用户及其相关数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27571014/

相关文章:

php - CSS - 表行奇数/偶数的背景颜色

python - (flask) python - mysql - 在带有来自 URL 的变量的选择查询中使用 where 子句

php - 数字 -3999999991 有什么逻辑意义吗?

javascript - JSON 到 HTML 表的转换

php - 在 foreach 循环中获取下一个元素

php - 如何在连接表中设置 Laravel 的 Eloquent 关系?

php - 在mysql数据库中保存事件日期

MySql 选择不工作

MySQL 返回所有选择而不是输出变量

arrays - 如何在angularjs和html中打印json数组对象数组