blog
user
13 072021

Laravel jest rozbudowanym frameworkiem MVC pozwalającym na szybkie tworzenie aplikacji. Okazuje się jednak że czasami można osiągnąć granice jego możliwości. Po ich osiągnięciu trzeba szukać obejść nieistniejących rozwiązań lub opracowywać je samemu. Przykładem niech będzie Eloquent oraz metody limit() i chunk(). Pierwsza z nich zwraca ograniczoną liczbę rekordów. Przykład poniżej zwróci kolekcję 3 użytkowników.

User::limit(3)->get();

Metoda chunk() dzieli wyniki na porcje.


User::chunk(2, function ($users) use($extra) {

/*
dd($users); zwróci kolekcję 2 użytkowników
*/

});

Okazuje się, że w przypadku próby pracy na porcjach dla ograniczonych wyników metoda limit() nie zadziała.

User::limit(2)->chunk(2, function ($users) use($extra) {

/*
dd($users); zwróci kolekcję 2 użytkowników
*/

});

Problem był wielokrotnie zgłaszany na github.com. Niestety nadal jest nierozwiązany. Jego obejście napisane przejrzyście i wydajnie znajduje się na stackoverflow.com. Co należy zrobić aby obejść problem? Trzeba pobrać maksymalny id rekordu dla zadanego limitu wierszy  a następnie użyć metody chunk() w połączeniu z metodą where(). Kod wygląda jak poniżej.

$max = 1000000; 

$maxId = User::skip($max)->take(1)->value('id'); 

$users = User::where('id', '<', $maxId); 

$users->chunk(1000, function (Collection $users) { foreach ($users as $user) { // ...kod } });

Nasze newsy

Śledź nasze aktualności.

blog
user
15 012025

Weryfikacja dwuetapowa podczas logowania do poczty

Na naszym serwerze istnieje możliwość włączenia weryfikacji dwuetapowej podczas logowania do poczty.

blog
user
14 112024

October CMS 3.7 – Nowe funkcje, lepsza integracja modeli i większe bezpieczeństwo

October CMS 3.7 wprowadza szereg nowości, które usprawniają pracę z treściami oraz integrację danych. Wśród kluczowych funkcji znajduje się „Record Finder Content Field”, pozwalający na łatwiejsze łączenie modeli Tailor z modelami Laravel, co ułatwia zarządzanie złożonymi relacjami danych. Zaktualizowano również edytor kodu oraz zwiększono poziom bezpieczeństwa, co sprawia, że system jest bardziej elastyczny i odporny na zagrożenia.

blog
user
16 042024

Wiosenne porządki na serwerze

Wiosenne uporządkowanie zasobów na serwerze.

logo

Masz pytania? Skontaktuj się