![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dziś zacząłem używać modułu ORM. I już ma pierwszy problem.
Otóż ma 3 tabele utworzone ze schematu Auth ORM niezbędnych do logowania. Czyli mam tabelę User | Role | UserRole I teraz chce policzyć ilu użytkowników ma rolę powiedzmy admin. Teraz robię to tak w kontrolerze
Żeby nie było to działa tylko czy może jest jakiś szybszy sposób aby uzyskać pożądany efekt. Przejrzałem dokumentacje Kohany do ORMa; ale nie znalazłem odpowiedzi na swoje pytanie :/ |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie używam ORM w kohanie ale
Bo w tabeli user powinieneś mieć info do jakiej grupy przynależy użytkownik -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 15 Dołączył: 15.11.2007 Skąd: Nowogród Bobrz. Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy bez joina da się to zrobić, ale join i tak musi być w bazie zrobiony, więc najłatwiej będzie tak:
Jak po nazwie roli, to jeszcze trzeba join'ąć tabelę 'roles'. Można też tak:
-------------------- Efemental.pl - nasz punkt słyszenia :: recenzje :: tylko metal!
Opensource'owy klon Cantra: http://github.com/magnax/Simtr |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za pomoc. Mam jeszcze jedno pytanie techniczne. Wszystkie pobrania z bazy wykonuję teraz w kontrolerze??
Czy tworzyć metody w odpowiednim modelu i tylko wywoływać jej w kontrolerze. Tak jak to robiłem dotychczas bez wykorzystania ORM. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
#2. Wiem, że korzystając z ORM czasem aż kusi by poskładać zapytanie w kontrolerze, ale lepiej trzymać się tego, że tego typu rzeczy robi się w modelu.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 29 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ok będę robił w modelu. Jeszcze tylko ostatnie pytanie. czy ORM jest wydajniejszy o zapytań budowanych w query bulder?? Bo osobiście nie jest przekonany do tego ORMa. Pewnie kwestia przestawienia się na niego. Tylko pytanie czy warto?
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Nie, ORM na pewno nie będzie wydajniejszy. Aplikacja napisana z użyciem ORM będzie zużywała więcej pamięci (sporo więcej), a dane pobieranie przez ORM zazwyczaj będą nadmiarowe (wszystkie kolumny z tabeli). Zaletą ORM jest to, że otrzymujesz obiekty, możesz wywoływać na nich metody, korzystać z relacji itd. Wspomniana nadmiarowość danych ma też swój plus: wiedząc, że w danym miejscu masz obiekt ORM wiesz, że masz dostęp do jego wszystkich danych, więc wprowadzanie jakichkolwiek zmian w aplikacji jest tak naprawdę dużo prostsze. Coś za coś...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:07 |