为了账号安全,请及时绑定邮箱和手机立即绑定

如何在拉拉维尔中连接两个表?

如何在拉拉维尔中连接两个表?

PHP
宝慕林4294392 2022-08-19 16:37:34
我是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,

    ];

});


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号