I have a simple form adding to my db with the below validation rules. "form" is in autoload.php.
Whenever any of the validation rules are broken the page shows no error output, when none are broken the form goes through as expected.
here's my controller function
public function add()
{
$this->load->library('form_validation');
$this->load->library('layout');
// field name, error message, validation rules
$this->form_validation->set_rules('type', 'Type', 'required|xss_clean');
$this->form_validation->set_rules('title_type', 'Title type', 'required|xss_clean');
$this->form_validation->set_rules('first_name', 'First name', 'trim|required|min_length[1]|max_length[150]|xss_clean');
$this->form_validation->set_rules('surname', 'Surname', 'trim|required|min_length[1]|max_length[150]|xss_clean');
$this->form_validation->set_rules('job_title', 'Job title', 'trim|min_length[5]|max_length[300]required|xss_clean');
$this->form_validation->set_rules('office_number', 'Office number', 'trim|min_length[2]|max_length[11]|xss_clean');
$this->form_validation->set_rules('telephone', 'Telephone', 'trim|numeric|xss_clean');
$this->form_validation->set_rules('email', 'Email', 'trim|valid_email|xss_clean');
$this->form_validation->set_rules('website', 'Website', 'trim|prep_url|xss_clean');
$this->form_validation->set_rules('background', 'Background', 'trim|xss_clean');
$data = array(
'title' => 'Add staff member'
);
if ($this->form_validation->run() == FALSE) { //Was errors
$this->session->set_flashdata('message','You missed some details, please try again.');
$this->layout->load('default', 'add_person', $data);
} else {
$this->people_model->add_person();
$this->layout->load('default', 'added_person', $data);
}
} //add
And in my form view i have
<?php echo validation_errors('<p class="msg msg-error">') ?>
Can anyone see what I've done wrong, I've tried everything I can think of.
A var_dump of the validation_errors() gives
string '' (length=0)
edit: strangely, if i swap these two lines around, i get:
$this->load->library('form_validation');
$this->load->library('layout'); //lib code http://pastebin.com/K1rBV512
Message: Undefined property: People::$form_validation
Filename: controllers/people.php
Line Number: 27