laravel - пытается удалить предмет из выбранной коллекции - PullRequest
0 голосов
/ 20 октября 2019

Мне нужно удалить элементы из коллекции на основе атрибута (Laravel 5.6).

$leagues = League::all();

foreach($leagues as $i => $L){
  if($L->status == LeagueStatus::HIDDEN){

    $leagues->forget($i); <<<<======== 1st attempt
    unset($leagues[$i]);  <<<<======== 2nd attempt

  }
}

return response()->json($leagues->toArray());

Оба метода удаляют элементы правильно, но вызывают, что ответ JSON приходит как объект:

{         <<<<======== ITS OBJECT WITH NUMBERED KEYS, NOT ARRAY
  "0":{
    "id":1,
    "title":"test...

Правильно будет JSON:

[         <<<<======== NORMAL ARRAY WITH OBJECTS
  {
    "id":1,
    "title":"test...

Я что-то не так делаю?

Ответы [ 2 ]

1 голос
/ 20 октября 2019

Используйте values, чтобы получить новую коллекцию с ключами, сбрасываемыми на последовательные целые числа:

return response()->json($leagues->values());

Документы Laravel 6.x - Коллекции - Доступные методы - values

0 голосов
/ 20 октября 2019

Просто замените это

return response()->json($leagues->toArray());

на

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