![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.06.2003 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jestem w trakcie tworzenia nowego serwisu przy użyciu frameworka Laravel. Nadal się go uczę i nie do końca wiem, gdzie pewne elementy powinny być umieszczone. W tej chwili mam kontroler:
Nie podobają mi się w nim dwie pozycje. Po pierwsze funkcja do generowania linków alfabetu. Po kliknięciu w literę pokażą się artykuły zaczynające się od niej. Alfabet nie może być "na sztywno" zamieszczony w widoku, gdyż jest on generowany w zależności od dostępnych artykułów oraz wersji językowej. Gdzie w laravel jest miejsce na tego typu funkcje? może kompozytor widoku? Druga sprawa to pobieranie danych do zbioru $articles. Czy powinno być to wykonywane w konstruktorze? Teoretycznie można by stworzyć klasę ArticlesList mniej więcej:
Niby problem rozwiązany, ale jak ta klasa ma się do frameworka? Czy może ma ona tam swoje miejsce jako np. kompozytor widoku, usługa,repozytorium itp..? Ten post edytował Nakiel 5.09.2016, 11:29:28 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Utwórz sobie klasę EloquentArticlesRepository i tam przenieś metodę generującą alfabet oraz metodę getArticleByLetter($lette)
Wtedy możesz sobie użyć tej klasy w widoku jako Service Injection (https://laravel.com/docs/5.3/blade#service-injection) żeby wygenerować sobie widok oraz w Kontrolerze żeby pobrać odpowiedni artykuł. Dodatkowo klasa EloquentArticlesRepository() może implementować ArticlesRepositoryInterface z odpowiednimi metodami co za tym idzie potem możesz zrobić bindowanie do odpowiedniej implementacji. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.06.2003 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Dzięki. Zrobiłem jak napisałeś. Działa i wygląda bardziej sensownie
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 15:48 |