从任何表返回数据都非常简单。 比方说:
- 我想以 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/