$teams = App\Team::with([
'portfolios' => function ($query) use ($user) {
// Only include portfolios where...
$query->whereHas('wallets', function ($query) use ($user) {
// ...there are wallets...
$query->whereHas('transactions', function ($query) {
// ...with pending transactions...
$query->whereStatus('pending');
});
// ...to be received by the given user.
$query->where('walletable_id', $user->id);
$query->where('walletable_type', App\User::class);
});
},
'portfolios.wallets' => function ($query) use ($user) {
// Second layer of constraints
$query->whereHas('transactions', function ($query) {
$query->whereStatus('pending');
});
$query->where('walletable_id', $user->id);
$query->where('walletable_type', App\User::class);
},
'portfolios.wallets.transactions' => function ($query) {
// Third and final layer of constraints
$query->whereStatus('pending');
},
])->get();
-
-
Save M-Abdullahi/1df6ef80a80bfef6163597bbf209b239 to your computer and use it in GitHub Desktop.
Medium post 1, Gist 2
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment