У меня есть следующий запрос, который получает дочернюю / вспомогательную учетную запись моей коллекции учетных записей и фильтрует их в зависимости от типа или категории, выбранной пользователем.
Примечание: это фильтруется по категории => «Доход»
$lists = Account::all();
foreach($lists as $list) {
$children = Account::where('parent_account_id', $ac->id);
if ($request->type != null) {
$children->where('category', $request->type);
}
if ($request->status != null) {
$children->where('is_active', $request->status);
}
$children->get();
if ($children->count() > 0) {
$list->children = $children;
} else {
$list->children = [];
}
}
dd($lists);
/**
filtered by category => revenue
#attributes: array:12 [▼
"id" => 4
"code" => "Account3"
"name" => "Account3"
"category" => "Revenue"
"is_active" => 1
"is_parent" => 0
"is_child" => 0
"parent_account_id" => null
"description" => "third account"
"created_at" => "2020-08-03 13:46:18"
"updated_at" => "2020-08-03 15:43:17"
"children" => []
]
**/
Но всякий раз, когда я возвращаю свой запрос как ответ json
return response()->json($lists)
, дочерние элементы учетной записи не фильтруются по категории
attributes: array:12 [▼
"id" => 4
"code" => "Account3"
"name" => "Account3"
"category" => "Revenue"
"is_active" => 1
"is_parent" => 0
"is_child" => 0
"parent_account_id" => null
"description" => "third account"
"created_at" => "2020-08-03 13:46:18"
"updated_at" => "2020-08-03 15:43:17"
"children" => Collection {#5926 ▼
#items: array:2 [▼
0 => Account {#5923 ▶} => category = Expense
1 => Account {#5924 ▶} => category = Expense
]
Почему это происходит?