Laravel - 获取多个表的数据
Laravel - Get Data of Multiple Tables
我想从客户和贷款这两个表中创建一个 select。查询(在 MySQL 语法中)将是这样的:
SELECT * FROM loans, clients WHERE loans.status = 1 AND loans.client_id = clients.id;
这是我的模型:
class Client extends Eloquent {
public function loans()
{
$this->hasMany('App\Loan');
}
}
class Loan extends Eloquent {
public function clients()
{
$this->belongsTo('App\Client');
}
}
使用eloquent模型的功能如何?
使用 with
方法在一个查询中获取贷款和客户,而不是为每个客户单独查询。
$loans = Loans::with('clients')->where('status', 1)->get();
有关详细信息,请参阅 Eager Loading 上的文档。
这将为您提供一组贷款,每个贷款都包含一组客户。如果你想迭代所有的贷款和客户,你可以使用嵌套循环:
foreach ($loans as $loan) {
// show loan info
foreach ($loans->clients as $client) {
// show client info
}
}
这就是你想要的
Loans::with('clients')->get();
这里是预先加载的文档
https://laravel.com/docs/5.5/eloquent-relationships#eager-loading
我想从客户和贷款这两个表中创建一个 select。查询(在 MySQL 语法中)将是这样的:
SELECT * FROM loans, clients WHERE loans.status = 1 AND loans.client_id = clients.id;
这是我的模型:
class Client extends Eloquent {
public function loans()
{
$this->hasMany('App\Loan');
}
}
class Loan extends Eloquent {
public function clients()
{
$this->belongsTo('App\Client');
}
}
使用eloquent模型的功能如何?
使用 with
方法在一个查询中获取贷款和客户,而不是为每个客户单独查询。
$loans = Loans::with('clients')->where('status', 1)->get();
有关详细信息,请参阅 Eager Loading 上的文档。
这将为您提供一组贷款,每个贷款都包含一组客户。如果你想迭代所有的贷款和客户,你可以使用嵌套循环:
foreach ($loans as $loan) {
// show loan info
foreach ($loans->clients as $client) {
// show client info
}
}
这就是你想要的
Loans::with('clients')->get();
这里是预先加载的文档
https://laravel.com/docs/5.5/eloquent-relationships#eager-loading