Laravel Eloquent Distinct - PullRequest
       10

Laravel Eloquent Distinct

0 голосов
/ 01 февраля 2019

У меня есть эта таблица

int id
string title
string year // maybe i'll change this to int??

, и я хочу зациклить свои данные, не используя другую таблицу для создания отношений, используя Год.

Я хочу вывод, подобный этому

2018 
 - title1
 - title2
 - title3

я знаю, что выбрано отличное, а затем мне нужно создать еще один запрос по данным, которые я собираю по выбору отличных. Мой вопрос, возможно ли это красноречиво и как?Спасибо.

что я пробовал до сих пор

$albums = Albums::groupBy('year')->get()->toArray();

и что я получаю при этом

array:2 [▼
  0 => array:5 [▼
    "id" => 4
    "title" => "Title1"
    "year" => "2017"
    "created_at" => "2019-02-01 07:46:30"
    "updated_at" => "2019-02-01 07:46:30"
  ]
  1 => array:5 [▼
    "id" => 1
    "title" => "Title1"
    "year" => "2018"
    "created_at" => "2019-02-01 07:08:59"
    "updated_at" => "2019-02-01 07:08:59"
  ]
]

что у меня в таблице

title1 2017
title2 2017
title3 2017
title1 2018
title2 2018
title3 2018

РЕДАКТИРОВАТЬ получил, используя это

$albums = Albums::all()->groupBy('year')->toArray();

с таким выводом

array:2 [▼
  2018 => array:3 [▼
    0 => array:5 [▶]
    1 => array:5 [▶]
    2 => array:5 [▶]
  ]
  2017 => array:3 [▼
    0 => array:5 [▶]
    1 => array:5 [▶]
    2 => array:5 [▶]
  ]
]

Теперь давайте подумаем, как отобразить этот год.Спасибо всем.

1 Ответ

0 голосов
/ 01 февраля 2019

Почему вы не использовали метод слияния?https://laravel.com/docs/5.7/collections#method-merge

$albums = Albums::all(); 
$year = new Collection(); 
foreach ($albums as $item) 
{ $year=$year->merge($item); $year=$year->flatten()->unique('year'); } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...