Laravel 将多张唱片转换成一张唱片……但如何做到呢?

Laravel 将多张唱片转换成一张唱片……但如何做到呢?,laravel,relationship,laravel-6,Laravel,Relationship,Laravel 6,我有两个表,一个是用户,另一个是贷款。它们之间有一对多的关系。一个用户可以有多个贷款,一个贷款属于一个用户 现在我想从贷款列表中获取用户 Loan::where('user_id', $user)->get() 这给我提供了与多个贷款相关联的重复样本用户数组。但我只想获得一条记录,就像许多贷款与一个用户关联一样。我假设您已经在用户和贷款模型之间建立了关系 // App\User public function loans() { return $this->hasMany

我有两个表,一个是
用户
,另一个是
贷款
。它们之间有一对多的关系。一个用户可以有多个贷款,一个贷款属于一个用户

现在我想从贷款列表中获取用户

Loan::where('user_id',  $user)->get()

这给我提供了与多个贷款相关联的重复样本用户数组。但我只想获得一条记录,就像许多贷款与一个用户关联一样。

我假设您已经在用户和贷款模型之间建立了关系

// App\User

public function loans() {
   return $this->hasMany('App\Loan');
}


// App\Loan

public function user() {
   return $this->belongsTo('App\User');
}

从贷款列表中获取用户

$user = Loan::where('user_id', $id)->first()->user;
// eager loading version 
$loansWithUsers = Loan::with('user')->where('user_id', $id)->get();
与一个用户关联的贷款

$loans = User::findOrFail($id)->loans;
// eager loading version 
$userWithLoans = User::with('loans')->findOrFail($id);

就我在你的问题中所理解的,你想让用户和它的贷款联系在一起,对吗?您的查询应该是这样的

$user_loans = User::with('loans')->where('id', $user_id)->get();
从贷款表中获取用户信息

Loan::where('user_id',  $user_id)->with('user')->get()
Ge贷款表中的用户取决于分支机构id

Loan::where('branch_id',  $branch_id)->with('user')->get();

只需返回一条记录<代码>贷款::其中('user_id',$userId)->first()。。。由于使用了
get()
,您将返回多条记录,而且这是一个单用户对多贷款关系,因此在查询
贷款
表时将有多条记录。或者,为什么不直接查询
users
表呢<代码>用户::其中('id',$userId)->first()。你的方法让你自己更加困难。实际上,我在贷款表中有两个外键,分别是
user\u id和branch\u id
这两个用户都存储在users表中,我已经为他们分配了角色。。。。。现在在查询中设置branch\u id,并在此基础上设置branch\u id get(user\u id)用户从用户表中获取所有信息…….您的查询只给ma一条记录,但他们的分支id可能相同,但用户id不相同……您知道吗?实际上,我在贷款表中有两个外键,即用户id和分支id。这两个用户都存储在用户表中,我为他们分配了角色。。。。。现在在查询中设置branch_id,并在branch_id从用户表中获取(user_id)用户所有信息的基础上…….您的查询只给ma一条记录,但它们的可能性是branch_id可能相同,但user_id不相同……您知道吗?您想获得具有特定branch id的用户贷款吗?不,我想从包含分支机构id和用户id的贷款列表中获取用户信息……我将比较分支机构id,然后从结果中获取用户信息……我可以通过在blade文件中执行此操作来获取用户信息……如
$result->user->name
,但它会给我重复记录。您想从特定用户处获取贷款吗身份证和分支身份证?