Автор Тема: Codeigniter и дискусия за валидация  (Прочетена 471 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

howto

  • Sr. Member
  • ****
  • Благодарности
  • -Казани: 44
  • -Получени: 4
  • Публикации: 341
Codeigniter и дискусия за валидация
« -: 17 Септември 2016, 16:52:10 »
Здравейте. От няколко дни се чудя върху валидация с Ci и как да направя нещата. Всъщност възможности много, но аз желая да изглежда професионално за това се допитвам и до Вас. Ето какво имам като код.

Код: PHP
  1. <?php
  2. controller Login
  3. {
  4.         public function index()
  5.         {
  6.         $this->loginStatus();
  7.          }
  8. private function loginStatus()
  9. {
  10. // тук си имам някъкви проверки на POST //
  11.  
  12. //Сега когато всичко е наред и се стигне до валидиране на кода правя това
  13. $this->form_validation->set_rules('email',$this->lang->line('email'), 'trim|required|min_length[3]|max_length[40]|valid_email|'.'callback_checkEmail');
  14. // От кода ясно личи, че викам callback_checkEmail
  15. /* Когато сложа този метод в controller-a всичко си работи, но тук идва проблема.... Аз не желая този метод да бъде в контролера и за това съм си направил модел Validation. Когато обаче се опитвам да извикам кода така:
  16. */
  17. $this->form_validation->set_rules('email',$this->lang->line('email'), 'trim|required|min_length[3]|max_length[40]|valid_email|'.'callback_'.$this->Validation_model->checkEmail());
  18. // Получавам следното съобщение:
  19. ###########################################################################################################################
  20. ----------------------- Unable to access an error message corresponding to your field name Е-поща.(1) ---------------------
  21. ###########################################################################################################################
  22. /*
  23. Това което желая е да извиквам метода от модел, а не директно от контролера... Аз виждам доста начини да се направи, но се опитвам да спазвам етикета на Ci, но немога да реша проблема си. Благодаря предварително за оделеното време и внимание  :)
  24. */
  25.  
  26.  
  27. }
  28. public function checkEmail()
  29.                 {
  30.                         $valid = $this->Validation_model->checkEmail(); //
  31.                         if ($valid == true)
  32.                         {
  33.                                 $valid = true;
  34.                         }
  35.                         else
  36.                         {
  37.                                 $valid = false;
  38.                         }
  39.                         return $valid;
  40.                 }
  41. }
  42.  
« Последна редакция: 17 Септември 2016, 17:08:12 от howto »