【发布时间】:2021-01-05 21:44:58
【问题描述】:
class Withdraw extends Model
{
public function getUser()
{
return $this->belongsTo(User::class, 'user_id', 'id');
}
public function getStatus()
{
return $this->belongsTo(WithdrawStatus::class, 'status_id', 'id');
}
public static function getWithDrawList()
{
$data = Withdraw::with(['getUser' => function ($q) {
$q->select('users.*', 'trainer_details.default_acc_name', 'trainer_details.default_bank_id',
'trainer_details.default_acc_number');
$q->join('trainer_details', 'users.id', '=', 'trainer_details.user_id');
}])
->with(['getStatus'])
->get()
->toArray();
return $data;
}
}
银行表数据
id,name
getwithdrawlist 的数据返回
Array
(
[0] => Array
(
[id] => 1
[user_id] => 2
[amount] => 200.0000
[status_id] => 4
[created_at] =>
[updated_at] => 2020-09-18T15:53:13.000000Z
[get_user] => Array
(
[id] => 2
[name] => lim
[default_acc_name] => lim
[default_bank_id] => 1
[default_acc_number] => 123156
)
[get_status] => Array
(
[id] => 4
[status] => Rejected
[created_at] => 2020-09-18T14:09:41.000000Z
[updated_at] => 2020-09-18T14:09:41.000000Z
)
)
)
问题:上面的代码是检索所有用户的详细信息,所以总共需要连接4个表才能得到完整的数据,即users、withdrawstatus、withdraw、banks。我已成功将 3 个表链接在一起,但我未能将数据与 banks 连接起来。这是否意味着银行详细信息应该在 [get_user] 的数组中返回?有谁知道如何使用 Laravel 关系加入另一个 banks 的表吗?请指教:((。
【问题讨论】:
-
银行模型与现有模型有何关系?
标签: php laravel eloquent eloquent-relationship