我是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, ]);}我想在邮递员中打印所有用户的姓名和所有交易。我设法打印所有用户的姓名,但当我尝试加入事务表时,我遇到了错误。我已经尝试了左连接方法,如下所示:$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 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
假设您在用户模型中具有此关系。
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 关注
- 123 浏览
添加回答
举报
0/150
提交
取消
