У меня проблема с автозагрузкой библиотеки form_validation
в Codeigniter.У меня есть контроллер Posts
с функцией создания, которая прекрасно работает.
public function create(){
$data['title']='New Post';
$this->load->view('templates/header');
$this->load->view('posts/create', $data);
$this->load->view('templates/footer');
}
Теперь я хочу сделать проверку формы.Примерно так:
public function create(){
$data['title']='New Post';
$this->form_validation->set_rules('title', 'Title','trim|required|min_length[5]|max_length[128]');
$this->form_validation->set_rules('body', 'Blog','trim|required|min_length[5]');
if($this->form_validation->run==FALSE){
$data['errors']=validation_errors();
$this->load->view('templates/header');
$this->load->view('posts/create', $data);
$this->load->view('templates/footer');
}else {
$this->load->view('templates/header');
$this->load->view('posts/success', $data);
$this->load->view('templates/footer');
}
}
На данный момент я не звоню никаким model
для сохранения данных, а просто показываю сообщение об успехе, загружая представление posts/success
.Однако, даже прежде чем я закодирую функцию создания с проверкой (то есть приведенным выше кодом), в момент, когда я добавляю form_validation
в autoload.php
(даже с первым кодом), вот так:
$autoload['libraries'] = array('database','form_validation');
Я получаю следующее сообщение об ошибке:
Сообщение: неопределенное свойство: Post_model :: $ load
Имя файла: библиотеки / Form_validation.php
Номер строки: 147
Backtrace:
Файл: C: \ xampp \ htdocs \ ciblog \ index.php Строка: 292 Функция: require_once
Я не понимаю ошибку какЯ даже не использую Post_model
в методе.
My Post_model.php
is:
class Post_model extends CI_Controller {
public function get_post($slug=NULL){
if(!$slug) {
$query = $this->db->get('posts');
return $query->result();
} else {
$this->db->where('slug',$slug);
$query = $this->db->get("posts");
return $query->result();
}
}
}
Мой полный пост-контроллер такой:
<?php
class Posts extends CI_Controller {
public function index(){
$data['title']='Latest Posts';
$posts=$this->post_model->get_post();
$data['posts']=$posts;
$this->load->view('templates/header');
$this->load->view('posts/index',$data);
$this->load->view('templates/footer');
}
public function view($slug){
$posts=$this->post_model->get_post($slug);
if(empty($posts)){
show_404();
} else {
$data['posts']=$posts;
$this->load->view('templates/header');
$this->load->view('posts/view',$data);
$this->load->view('/templates/footer');
}
}
public function create(){
$data['title']='New Post';
$this->form_validation->set_rules('title', 'Title','trim|required|min_length[5]|max_length[128]');
$this->form_validation->set_rules('body', 'Blog','trim|required|min_length[5]');
if($this->form_validation->run()==FALSE){
$data['errors']=validation_errors();
$this->load->view('templates/header');
$this->load->view('posts/create', $data);
$this->load->view('templates/footer');
}else {
$this->load->view('templates/header');
$this->load->view('posts/success', $data);
$this->load->view('templates/footer');
}
}
}
Я автоматически загрузил модель, которая работает. Я искал другие сообщения, большинство из них были связаны с тем, что первая буква названия модели не в заглавных буквах, что не в моем случае.Может ли кто-нибудь, пожалуйста, заставить меня понять, что происходит не так?