Здравейте. От няколко дни се чудя върху валидация с Ci и как да направя нещата. Всъщност възможности много, но аз желая да изглежда професионално за това се допитвам и до Вас. Ето какво имам като код.
<?php
controller Login
{
public function index()
{
$this->loginStatus();
}
private function loginStatus()
{
// тук си имам някъкви проверки на POST //
//Сега когато всичко е наред и се стигне до валидиране на кода правя това
$this->form_validation->set_rules('email',$this->lang->line('email'), 'trim|required|min_length[3]|max_length[40]|valid_email|'.'callback_checkEmail');
// От кода ясно личи, че викам callback_checkEmail
/* Когато сложа този метод в controller-a всичко си работи, но тук идва проблема.... Аз не желая този метод да бъде в контролера и за това съм си направил модел Validation. Когато обаче се опитвам да извикам кода така:
*/
$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());
// Получавам следното съобщение:
###########################################################################################################################
----------------------- Unable to access an error message corresponding to your field name Е-поща.(1) ---------------------
###########################################################################################################################
/*
Това което желая е да извиквам метода от модел, а не директно от контролера... Аз виждам доста начини да се направи, но се опитвам да спазвам етикета на Ci, но немога да реша проблема си. Благодаря предварително за оделеното време и внимание :)
*/
}
public function checkEmail()
{
$valid = $this->Validation_model->checkEmail(); //
if ($valid == true)
{
$valid = true;
}
else
{
$valid = false;
}
return $valid;
}
}