У меня есть один контроллер и попытаться загрузить две модели (Usermodel и Contentmodel), а также нужно загрузить Form Validation Library. Я использую Usermodel, чтобы делать все с пользователем, таким как логин и регистрация, и мне нужно Contentmodel, чтобы делать все с моим веб-контентом. Сначала я был в состоянии войти и зарегистрироваться и у меня не было никаких проблем с Form Validation Library, но потом, когда я добавить строку $this->load->model('contentmodel');
загрузить Contentmodel, я вдруг получаю эту ошибку:форма проверки не будет работать, если нагрузки две модели - CodeIgniter
Если я удалите строку $this->load->model('contentmodel');
, все снова вернется к норме.
Controller (Controll.php):
defined('BASEPATH') OR exit('No direct script access allowed');
class Controll extends CI_Controller {
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see http://codeigniter.com/user_guide/general/urls.html
*/
public $lang;
public $logo;
public function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->helper('form');
$this->load->model('contentmodel');
$this->load->model('usermodel');
$this->load->library('session');
$this->load->library('form_validation');
/*get all user sessions data*/
$this->sesi = $this->session->all_userdata();
$config = $this->contentmodel->load_config();
$this->lang = $config['lang'];
$this->logo = $config['image_logo_path'];
$data['lang'] = $this->lang;
$this->load->view('/header/header');
}
public function panel(){
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_rules('cred', 'Password', 'required');
if($this->form_validation->run() === false){
echo '<center style="position: relative;z-index:10000;font-family: \'Roboto\', sans-serif;color:white;top: 62%;">'.validation_errors().'</center>';
$this->load->view('login');
}else{
$user = $this->usermodel->login();
if($user == 0){
echo '<center class="logerror" style="position: relative;z-index:10000;font-family: \'Roboto\', sans-serif;color:white;top: 62%;">Username or Password incorect. Please try again</center>';
$this->load->view('login');
}else{
$data['data'] = 2;
$data['user'] = $user;
$this->load->view('/header/navbar',$data);
$this->load->view('panel');
$this->load->view('/footer/footer');
}
}
}
А также, если я удалить/комментарии эти строки:
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_rules('cred', 'Password', 'required');
/* ... */
if($this->form_validation->run() === false){
/* ... */
}else{
/* ... */
}
Все возвращается в нормальное русло, а также.
Пожалуйста, помогите мне. Заранее спасибо.
при открытии 'библиотеки/Form_validation.php' и перейти к строке 455, что вы видите? – CodeGodie
Есть несколько вещей, которые помогут нам вам помочь. Дополнительная информация об этой ошибке, показанной на скриншоте, например, о том, что вы вызывали 'load()', и о том, что это текущее значение (не определено ли это? Если '$ this' не является объектом, то что это такое?) Кроме того, если вы можете оценить это до [MCVE] (http://stackoverflow.com/help/mcve), проблема может стать очевидной. Похоже, что '$ this' имеет какое-то отрывочное поведение на PHP, проверьте [этот вопрос] (http://stackoverflow.com/questions/5494436/php-this-variable), где кто-то автоматически отключился от' $ this' инициализация членов до «null». –
@CodeGodie это строка: '$ this-> CI-> lang-> load ('form_validation');' –