response () -> json () или json_encode, изменяющий значение моей коллекции | Laravel - PullRequest
0 голосов
/ 04 августа 2020

У меня есть следующий запрос, который получает дочернюю / вспомогательную учетную запись моей коллекции учетных записей и фильтрует их в зависимости от типа или категории, выбранной пользователем.

Примечание: это фильтруется по категории => «Доход»

$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
        ]

Почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...