2010-12-27 10 views
0

Ich habe gelesen, dass in Codeigniter ich meinen Formularcode organisieren sollte, indem ich Validierungscode in meinen Controller und Validierungsregeln/Voreinstellungen in mein Modell einfüge.Wo Code in Codeigniter Rahmen zu organisieren

Ist dies einfach durch Erstellen einer Funktion in meinem Modell wie die unten genannten, und dann von meinem Controller aus aufrufen? Es hält sicherlich den Controller sauber, aber ich möchte sicherstellen, dass dies der richtige Weg ist, Dinge zu organisieren.

//inside widget_model.php 

function myRules() 
{ 
    $this->form_validation->set_rules('item_name', 'name', 'required'); 
    $this->form_validation->set_rules('item_description', 'description', 'required'); 
} 


function myDefaults() 
{ 
    return $defaults = array(
     'page_title' => "Add new widget", 
     'fname' => 'widget_name', 
     'fdescription' => 'widget_description' 
    ); 
} 

Antwort

1

Sie müssen das IMHO nicht tun. Der beste Weg ist, um die Validierungsregeln in Ihrem Controller wie folgt festgelegt:

$this->load->helper(array('form', 'url')); 

$this->load->library('validation'); 

$rules['username'] = "required"; 
$rules['password'] = "required"; 
$rules['passconf'] = "required"; 
$rules['email']  = "required"; 

$this->validation->set_rules($rules); 

$fields['username'] = 'Username'; 
$fields['password'] = 'Password'; 
$fields['passconf'] = 'Password Confirmation'; 
$fields['email'] = 'Email Address'; 

$this->validation->set_fields($fields); 

if ($this->validation->run() == FALSE) 
{ 
    $this->load->view('myform'); 
} 
else 
{ 
    $this->load->view('formsuccess'); 
} 

}

Sie müssen nicht alles in Ihrem Modell setzen.

Mehr zum Thema hier: http://codeigniter.com/user_guide/libraries/validation.html

+0

Dank Andrey. Es schien ein bisschen komisch, es so in das Modell zu trennen, nur um einen "mageren Controller, ein fettes Model" zu haben. Ich wollte nur von einem anderen erfahreneren Entwickler hören, dass es nicht schlecht war, das Validierungskram in den Controller zu stecken. – justinl

Verwandte Themen