![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hej
Każdy user jest przypisany do firmy. User jest też przypisany do roli ( może mieć wiele ról ). Chciałbym osiągnąć funkcjonalność gdzie: NP 1 ) Admin widzi wszystko: dokumenty, wszystkie combosy wypełnione wszystkim, etc NP 2 ) User widzi: dokumenty z jego firmy. Jeszcze nie wiem czy nagłówki dokumentów będę wiązał z userem czy z firmą. Ale dla tych dywagacji nie ma to większego znaczenia. Będę też miał pozycje dokumentu. Trzeba coś wymyślić aby metoda showDocumentElements(int DocumentId) nie pozwalała zobaczyć pozycji z nieswojego dokumentu Etc. Proszę Was o podpowiedz, kawałek kodu, coś co zobrazuje jak to powinno być napisane. Temat myśle bardzo uniwersalny i każdy z niego zaczerpie. Nie chciałbym tworzyć osobnych kontrolerów dla ról. Zastanawiam się czy nie wystawić serwisu jakiegoś, którego metody dostawałyby role usera i na ten podstawie pobierały z repozytorium odpowienie dane? ( na ifach ) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tego drugiego podejścia nie polecam, ponieważ wtedy użycie metody documents() zwraca Ci relacje albo wszystkie rekordy. Często pisze się takie struktury jak: $documents->elements()->where("price", ">", 100)->get(). U Ciebie to zadziała tylko w przypadku użytkownika, który nie jest adminem. Dodatkowo pobrać wszystkie rekordy możesz używając parametru ->documents (to hear czym innym niż metoda ->documents()). Efekt który chcesz można uzyskać wstawiając where zaraz za hasMany, ale wtedy Twój model posiada w sobie logikę biznesowa co moim zdaniem nie jest dobrym rozwiązaniem. Czasami możesz chcieć po prostu pobrać wszystkie elementy dokumentu niezależnie od tego na jakim jesteś koncie/użytkowniku.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 12:09 |