![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hej.
Mam pytanie odnośnie podejścia pro do tematu. Załóżmy, że mamy w panelu admina 3 zakładki. Spotkania, Telefony oraz mój dashboard. W dashboardzie chcę wyświetlić dzisiejsze spotkania i telefony, w Telefony lista zaplanowanych telefonów, w Spotkania analogicznie - lista wszystkich moich spotkań. I teraz. Czy do tego zrobić 3 kontrolery, w którym każdy będzie odpowiadał za swoje, czyli kontroller do dashboardu, kontroller do listingu spotkań i kontroller do telefonów, i do tego każdy ma mieć swoją klasę? Czy może dwa kontrollery, jeden za dashboard, a drugi dać jako Activity (activity to rekordy zaplanowanych spotań i tel, gdzie jest koluman type warunkująca czy to tel, czy spotkanie). Czy może jeszcze inna droga i jeden kontroller i jeden model - tylko wtedy w akcjach index(), store() itd kontrollera muszę dawać jakieś switch case żeby operować na danych i wyświetlać albo dashboard, albo spotkania albo telefony, Które rozwiązanie lepsze - a może jeszcze inaczej? Wolałbym dać tel i spotkania jako jedna klasa, bo to są prawie identyczne kolumny w bazie (tylko spotkanie ma jedną kolumnę więcej). Pytam się, ponieważ tych opcji będzie z 15 więc wolałbym dobrze podejść do tematu. Z góry dzięki za info :-) -------------------- ---
"kto pyta ten nie błądzi"... |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Liczbę modeli determinuje liczba tabeli. Jeżeli spotkania i telefony to jedna tabela tylko z różną kolumną (type) to masz jeden model. Tu nie ma co zbytnio kombinować.
Liczba kontrolerów, nie wpłynie to mocno na jakość kodu. Warto się trzymać jakiegoś standardu wszędzie i tyle. 1 kontroler na jeden zasób - np. /articles (i w nim wszystko co z artykułem, wszystkie CRUD metody i pozostałe). W Twoim przypadku skoro to jeden zasób to jak dla mnie Controller: activities/index albo /home - dashboard activities/meeting - spotkania activities/calls- telefony Czyli jeden kontroler, 3 metody. Ten post edytował markonix 26.11.2017, 17:59:31 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Super, dziękuję za odpowiedź.
Czyli tak. Zrobiłem jeden model Activity (w nim są spotkania i telefony) i jeden kontroller. Ok, ale jak jest metoda index() to ona będzie odpowiadać za trzy różne podstrony? Np. /dashboard , /meeting , /calls i w środku musiałbym jakiegoś switch case zrobić, żeby tylko odpowiednie dane wyciągać do odpowiednich podstron. Tak mam, ale wydaje mi się, że to chyba inaczej się powinno zrobić? Może jakas grupa routingów tylko potem jak jest metoda store() czy index() to odpowiada za kilka akcji? Np. na podstronie /meeting może być wyszukiwarka itd. Zrobiłem tak, ale wg. mnie to paskudne... ;/
i plik rotues.php:
-------------------- ---
"kto pyta ten nie błądzi"... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie, nie wygląda to ciekawie. Czemu nie zrobiłeś po prostu kilku wpisów w routingu i kilku metod tak jak markonix pisał?
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Masz na myśli coś takiego: ?
Route::match(['get', 'post'], '/admin-new/crm/meeting', 'CrmController@index')->name('crm')->middleware('auth'); Route::match(['get', 'post'], '/admin-new/crm/calls', 'CrmController@index')->name('crm')->middleware('auth'); Route::match(['get', 'post'], '/admin-new/crm/dashboard', 'CrmController@index')->name('crm')->middleware('auth'); zamiast: Route::match(['get', 'post'], '/admin-new/crm/{page_name}/{id?}', 'CrmController@index')->name('crm')->middleware('auth'); Ale to i tak, w metodzie @index muszę dać switchy albo coś innego, żeby wyświetlić odpowiedni widok i pobrać dane tylko dla danego widoku a nie dla wszystkich.. ![]() -------------------- ---
"kto pyta ten nie błądzi"... |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Raczej:
Przy okazji do wyszukiwania polecam jednak samo get zasotosować, przynajmniej link można przeklejać itp ![]() Ten post edytował r4xz 26.11.2017, 20:37:43 -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Wykorzystaj grupowanie zamiast każdorazowego dodawania middleware do routes i nazwy muszą być unikalne inaczej ich nazywanie nie ma sensu.
Widzę też troszkę "błędów" w konwencji stylów kodów, no i gdzie jest zdefiniowane $logged_user i czemu nie Auth::user() ? Aby zmniejszyć liczbę routes możesz użyć Resource() Ten post edytował markonix 26.11.2017, 21:33:51 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 10:58 |