Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana] $query->count() w konstruktorze nie działa
screamart
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 5
Dołączył: 11.04.2010

Ostrzeżenie: (0%)
-----


Od jakiegoś czasu eksperymentuję sobie z frameworkiem Kohana. Pisząc sobie klasę pod model logowania napotkałem pewne trudności. Początkowo aby szybko sprawdzić jak wygląda obsługa bazy w tym frameworku napisałem coś takiego:

  1. class Login_Model extends Model {
  2.  
  3. public $status;
  4. public $pw;
  5.  
  6. public function isUser($username)
  7. {
  8. $query = $this->db->query("SELECT * FROM `users` WHERE name = \"".$username."\"");
  9. return $query->count();
  10. }
  11. public function isActive($username)
  12. {
  13. $query = $this->db->query("SELECT * FROM `users` WHERE name = \"".$username."\"");
  14. foreach ($query->result_array() as $row)
  15. {
  16. $this->status = $row->isActive;
  17. }
  18. return $this->status;
  19. }
  20. public function checkPassword($username)
  21. {
  22. $query = $this->db->query("SELECT * FROM `users` WHERE name = \"".$username."\"");
  23. foreach ($query->result_array() as $row)
  24. {
  25. $this->pw = $row->password;
  26. }
  27. return $this->pw;
  28. }
  29. }


Wszystko działa ale rzecz jasna jest to złe rozwiązanie bo powtarzają mi się zapytania. Przerzuciłem więc zapytanie do kontruktora i przypisałem interesujące mnie wartości z bazy do atrybutów klasy. Problem w tym że metody które maja mi po prostu zwracać wartość np. ilości rekordów za pomocą $query->count() lądują w kontrolerze "puste" (nie 0, nie 1 itd). Jestem raczej początkujący więc mogłem sobie coś źle założyć. Przykład nieprawidłowo działającego kodu poniżej:

  1. class Login_Model extends Model {
  2.  
  3. public $numberOfRecords;
  4. public $query;
  5. public $status;
  6. public $pw;
  7.  
  8. public function __contruct($username)
  9. {
  10. $this->query = $this->db->query("SELECT * FROM `users` WHERE name = \"".$username."\"");
  11. $this->numberOfRecords = $query->count();
  12. foreach ($this->query as $row)
  13. {
  14. $this->status = $row->isActive;
  15. $this->pw = $row->password;
  16. }
  17. }
  18. public function isUser()
  19. {
  20. return $this->numberOfRecords;
  21. }
  22. public function isActive()
  23. {
  24. return $this->status;
  25. }
  26. public function checkPassword()
  27. {
  28. return $this->pw;
  29. }
  30. }


Ktoś wie dlaczego metody wykonujące zwykły return nie zwracają zupełnie nic?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 20:28