Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [kohana] Walidacja formularza
dominick
post 27.08.2014, 18:37:41
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.05.2014

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


Witam serdecznie.
Stałem się posiadaczem strony napisanej we frameworku kohana.
Na owej stronie jest formularz dodawania ogłoszenia. Jedna pozycja mi nie pasuje i chciałbym się jej pozbyć ale walidator sprawdza tę pozycję i wyskakuje mi, że pole jest puste. Proszę o pomoc gdzie mogę zacząć poszukiwania walidacji?
Znam podstawu php ale kohana jest dla mnie nowością i chciałbym trochę jej ugryźć.
Go to the top of the page
+Quote Post
wujek2009
post 27.08.2014, 19:00:10
Post #2





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


są dwa sposoby:

- w modelu (zależy jaka wersja, ale szukaj albo funkcji "rules()" albo zmiennej protected $rules lub protected $_rules)
- w kontrolerze szukaj w akcji czegoś co zaczyna się od: Validation::factory i tam będizesz miał regułki ->rules()

wiesz jak najłatwiej zrobić jak nie znasz frameworka - otwórz źródło www, znajdź tego inputa skopiuj nazwe inputa (tj: parametr name)
i szukaj w całym projekcie wystąpienia 'nazwa_pola' (tylko szukaj z ' <-- będziesz miał mniej wyników)
Go to the top of the page
+Quote Post
dominick
post 27.08.2014, 22:34:22
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.05.2014

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


szukałem po name i znalazłem kilka linijek kodów:

  1. class Model_Announcement_Type extends ORM {
  2.  
  3. protected $_table_name = 'annoucement_type';
  4. protected $_primary_key = 'id';
  5. protected $_primary_val = 'name';
  6.  
  7. public function get_for_select()
  8. {
  9. $select[NULL] = '---';
  10.  
  11. foreach ($this->find_all() as $t) {
  12. $select[$t->id] = $t->name;
  13. }
  14.  
  15. return $select;
  16. }
  17.  
  18. public function get_admin()
  19. {
  20. $this->select(array(Db::expr('
  21. (
  22. SELECT
  23. COUNT(*)
  24. FROM
  25. announcements
  26. WHERE
  27. announcements.annoucement_type = announcement_type.id
  28. )
  29. '), 'announcements_count'));
  30. $this->order_by('name', 'ASC');
  31. return $this->find_all();
  32. }
  33.  
  34. }


i coś takiego - to wyrwany kawałek
  1. $values = array(
  2. "category_id" => !empty($category) ? $category : '140',
  3. "annoucement_type" => "1",
Go to the top of the page
+Quote Post
zaajcu
post 28.08.2014, 10:58:04
Post #4





Grupa: Zarejestrowani
Postów: 206
Pomógł: 3
Dołączył: 18.08.2011
Skąd: Chrzanów

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


Tu nie ma nic z walidacji.

Podeślij controller, view i model, i napisz o jakie pole input Ci chodzi wink.gif
Go to the top of the page
+Quote Post
lukasz_os
post 28.08.2014, 11:18:21
Post #5





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

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


Zalezy jak masz ustawiony routing (zakładam że raczej standardowo) podeślij plik kontrolera (pierwszy element w adresie to jest jego nazwa) z folderu application/controllers.
Jezeli nie znajdziesz takiego to w pliku application/bootstrap.php masz na końcu zdefiniowane routingi gdzie adres z przeglądarki mapujesz na dany kontorler i akcję. Tak więc podeślij nam kontroler odpowiedzialny za ogłoszenia.


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
dominick
post 28.08.2014, 11:57:41
Post #6





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.05.2014

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


Powiem szczerze, że nie wiem gdzie tego szukać i o które dokładnie pliki chodzi. Mam total comandera więc może wskażecie mi co jest w tych plikach a ja przeszukam całość po zawartości plików.
Go to the top of the page
+Quote Post
zaajcu
post 28.08.2014, 14:08:53
Post #7





Grupa: Zarejestrowani
Postów: 206
Pomógł: 3
Dołączył: 18.08.2011
Skąd: Chrzanów

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


Adres strony składa się z kilku elementów


www.adres_strony.pl/nazwa_kontrolera/nazwa_akcji/parametry.....


controller : aplication->classes->controller->nazwa_kontrolera.php

podeślij ten plik na początek, oraz nazwę_akcji albo cały url, potem powiem co jeszcze masz podesłać wink.gif
Go to the top of the page
+Quote Post
dominick
post 29.08.2014, 11:17:13
Post #8





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.05.2014

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


Przepraszam, że dopiero teraz piszę ale nadpisał mi się plik przez filezille i straciłem cały dzień na szukaniu. - już używam total comandera.

adres strony: www.jakaśdomena.pl/ogloszenia/dodaj

jeżeli chodzi o plik to w application/classes nie ma folderu controller
Go to the top of the page
+Quote Post
lukasz_os
post 29.08.2014, 14:04:48
Post #9





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

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


przeszukaj folder modules tam musisz poza standardowymi modułami mieć dodatkowe.

standardowe to: auth, codebench, cache, database, image, orm, userguide.

napisz jakie dodatkowe foldery masz tam.


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
dominick
post 29.08.2014, 14:24:46
Post #10





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.05.2014

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


w modules mam announcements a w nim cotroller
w folderze controller mam następujące foldery:
admin
ajax
cron
frontend
profile
rss
Go to the top of the page
+Quote Post
lukasz_os
post 30.08.2014, 10:21:57
Post #11





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

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


Przejrzyj folder frontend i tam powinieneś mieć kontroler który odpowiada za akcję dodania ogłoszenia. Podeślij go. Chyba że formularz jest wysyłany ajaxem to może akcja być w folderze ajax. Aby to stwierdzić zobacz czy przy kliknięciu w "dodaj ogłoszenie" odświeża ci całą stronę.

Ten post edytował lukasz_os 30.08.2014, 10:23:44


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
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 Wersja Lo-Fi Aktualny czas: 16.07.2025 - 17:06