Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Kohana] Rejestracja nowego użytkownika, Problem z konfiguracją ORM lub Auth
iro88
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 3
Dołączył: 13.10.2010
Skąd: Świdnica

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


Witam,
mam problem z zarejestrowaniem użytkownika ponieważ moduł sprawdza czy przypadkiem użytkownik o podanej nazwie już nie istnieje w bazie danych. Wszystko ok, tylko szuka nie w tej kolumnie. Moje pytanie brzmi, czy da się zmienić nazwę kolumny w której funkcja szuka danego użytkownika? Chciałbym to zrobić poprzez plik koniguracyjny w Aplication, by nie grzebać w systemowych plikach.

Póki co wywala błąd:
  1. Database_Exception [ 1054 ]: Unknown COLUMN 'username' IN 'where clause' [ SELECT `users`.* FROM `users` WHERE `username` = 'test' LIMIT 1 ]


A schemat ORM'a i bazy wygląda tak:
  1. class Model_Users extends ORM {
  2.  
  3. protected $_table_name = 'users';
  4.  
  5. protected $_primary_key = 'user_id';
  6.  
  7. public function rules()
  8. {
  9. return array(
  10. 'user_name' => array(
  11. array('not_empty'),
  12. array('max_length', array(':value', 32)),
  13. ),
  14. 'user_pass' => array(
  15. array('not_empty'),
  16. array('max_length', array(':value', 32)),
  17. ),
  18. 'user_email' => array(
  19. array('not_empty'),
  20. array('max_length', array(':value', 32)),
  21. ),
  22. );
  23. }
  24.  
  25.  
  26. // tu naiwna próba fixa
  27. protected $_table_columns = array(
  28. 'user_id' => NULL,
  29. 'user_name' => NULL,
  30. 'user_pass' => NULL,
  31. 'user_email' => NULL,);
  32.  
  33. }
Go to the top of the page
+Quote Post
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Kto Ci tak te kolumny ponazywał?

Używasz Auth?


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
iro88
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 3
Dołączył: 13.10.2010
Skąd: Świdnica

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


Tak, używam modułu Auth. I jest tam funkcja:
  1. /**
  2. * Does the reverse of unique_key_exists() by triggering error if username exists.
  3. * Validation callback.
  4. *
  5. * @param Validation Validation object
  6. * @param string Field name
  7. * @return void
  8. */
  9. public function username_available(Validation $validation, $field)
  10. {
  11. if ($this->unique_key_exists($validation[$field], 'username'))
  12. {
  13. $validation->error($field, 'username_available', array($validation[$field]));
  14. }
  15. }


Wczoraj wieczorem próbowałem też zmienić linię kodu, ale nie poskutkowało:
  1. if ($this->unique_key_exists($validation[$field], 'user_name'))


Ten post edytował iro88 24.05.2011, 08:41:01
Go to the top of the page
+Quote Post
matino
post
Post #4





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

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


Musisz rozszerzyć w application/model Model_Auth_User i pozamieniać wszystkie wsytąpienia username na user_name.
Plik oczywiście nazywasz user.php.
  1. <?php
  2.  
  3. defined('SYSPATH') or die('No direct access allowed.');
  4.  
  5. class Model_User extends Model_Auth_User
  6. {
  7. }
Go to the top of the page
+Quote Post

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: 21.08.2025 - 08:22