Niekoniecznie jest to standardowy typ konta, ale powiedzmy, że to jest zawód zalogowanego.
Nie są to standardowe role, uprawnienia.
Aplikacja jest wspólna dla każdego ale dla różnych zawodów różni się w paru miejscach np. są to pewne pola, pozycje w menu, które są różne dla różnych typów.
Tak więc mamy widok
Mamy też np. formularze gdzie w zależności od typu będą różne pola ale też różne nazwy i różne wartości domyślne.
I teraz ok, to działa ale takich prostych warunków będzie dużo w aplikacji i na pewno będą się zmieniać i dochodzić nowe typy.
Dodanie nowego typu będzie wymagało każdorazowo przeszukiwanie kontrolerów i widoków celem dopisania tego nowego typu do warunków if / in_array.
Myślę nad czymś takim, że pewne fragmenty aplikacji nazywam, a typy kont przenoszę do jakiegoś configu.
@if (showThis('it_box_info', $user->type)) @endif
Html::number('amount', old(showThis('default_value_in_some_input')))
A w configu:
'programmer' => ['it_box_info' => true, 'module_1' => false, 'default_value_in_some_input' => 10] 'programmer' => ['it_box_info' => true, 'module_1' => false, 'default_value_in_some_input' => 10] 'driver' => ['it_box_info' => false, 'module_1' => true, 'default_value_in_some_input' => 10]
Dodanie nowego typu jest wtedy bardzo proste, kopiujesz najbardziej podobny i tyle. Minus wiadomo, troszkę więcej pracy przy tworzeniu systemu oraz musi być dobrze ustalona konwencja nazewnictwa aby wiedzieć co tak naprawdę włączasz i wyłączasz. Można by się też pokusić o wartości domyślne gdy dany indeks w tablicy nie widnieje.
Co o tym sądzicie? To jakiś wzorzec jest czy po prostu zwykły config? Jakieś propozycje co do implementacji w Laravel (muszę mieć dostęp na pewno w widoku i kontrolerze)?