Miałem podobny problem i chociaż minęło już trochę czasu, ponieważ może być przydatne dla kogoś dzisiaj.
Problem polegał na tym, że gdy zadzwoniłem pod numer unique
, metoda zbierania przedmiotów nie zadziałała, prawdopodobnie dlatego pierwsza odpowiedź została przyjęta. Więc jeśli masz model i chcesz usunąć duplikaty oparte na konkretnym obszarze można przekazać parametr do metody unique
, w tym przypadku byłoby to:
$countries->unique('code');
ten sposób będziesz mieć tylko kraje z unikalnymi kodami . Możesz zauważyć, że pozostaje tylko pierwsza wartość, więc jeśli stworzysz aplikację na zakupy i chcesz z jakiegoś powodu połączyć wózki i chcesz tylko mieć ostatnie przedmioty, możesz po prostu cofnąć kolekcję i zadzwonić pod numer unique
i cofnąć ją:
$countries->reverse()->unique('code')->reverse(); // it doesn't really make sense in this example though
Prawdopodobnie nie jest to najlepsza opcja i lepiej jest wykonać filtrowanie po stronie bazy danych, ale dobrze mieć opcje.
Nie jestem pewien, jaka jest zawartość tabeli db, ale czy nie jest łatwiej uzyskać pożądany wynik z zapytania? - i, zechcesz debugować linie kodu, spróbuj wydrukować niektóre dane pomiędzy funkcjami i sprawdź poprawność danych wyjściowych. –
Czy zamiast tego próbowałeś użyć '-> groupby ('country')' lub '-> distinct() -> get (array ('country'))' w zapytaniu? – Jeemusu