我是 Laravel 的新手。我很难加入两个表(用户表和事务表)。下面是来自 TransactionController 的代码。public function index(){ $user = User::all(); $transactions = $user->transactions; $transaction = array(); foreach ($transactions as $row) { array_push($transaction, [ 'id' => $row->id, 'name' => $row->user->name, ] ); } return response() -> json ([ 'transaction' => $transaction, ]);}我想在 Postman 中打印所有用户的姓名和所有交易。我设法打印了所有用户的姓名,但是当我尝试加入事务表时,我遇到了一个错误。我已经尝试过如下左连接方法:$user = User::all() ->select('user.id','user.name') ->join('transactions','transactions.id','=','user.id') ->get(); foreach ($transactions as $row) { array_push($transaction, [ 'id' => $row->id, 'name' => $row->user->name, ] ); } return response() -> json ([ 'transaction' => $transaction, ]);}有没有办法在 laravel 中加入两个表?谢谢你。
1 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
假设您在 User 模型中有这种关系。
public function transactions() {
return $this->hasMany('App\Transaction', 'user_id');
}
在您的交易模型中
public function user() {
return $this->belongsTo('App\User', 'user_id');
}
现在,将用户连同他们的交易一起获取
$users = User::with('transactions')->get();
如果您想与用户内联获取交易
$data = Transaction::with('user')->get();
$transactions = collect($data)->map(function ($transaction){
return [
'id' => $transaction->id,
'name' => $transaction->user->name,
'total' => $transaction->total,
];
});
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消