Здравствуйте, разработчики, я получаю сообщение об ошибке, но не знаю почему? Все правильно, я так думаю. Я делаю простое удаление в codeigniter, используя id. Просто проверьте мой код.
Это мой контроллер.
public function deletecourse(){
$id = $this->uri->segment(4);
$elete = array(
'table'=>'ls_courses',
'where'=>array('id'=>$id)
);
$result=$this->coursemodel->deletecour($elete);
if ($result){
$this->session->set_flashdata('success', 'Successfully deleted.');
}
else{
$this->session->set_flashdata('warning', 'Unable to delete data.Please try again.');
}
redirect(base_url().'admin/course/index/');
}
Это функция модели.
class CourseModel extends CI_Model
{
public function __construct()
{
parent::__construct();
}
public function deletecour($elete)
{
$this->db->where($elete['where']);
return $this->db->delete($elete['table']);
}
public function fetchCourseByParentID($id)
{
$this->db->select('course_name, image, sort_order, parent_id,
date_added, status');
$this->db->from('ls_courses');
$this->db->where('id = ' . $id);
$query = $this->db->get();
if (!empty($query->result_array()))
{
return $query->result_array();
}
else
{
return $this->db->error();
}
}
}
Он исходит от моего контроллера после получения идентификатора от uri. Я делаю массив из $ elete.
вы загрузили CourseModel
Да, в автозагрузке я сделал это $ autoload ['model'] = array ('admin / coursemodel');
неверный метод загрузки модуля. справа это $autoload['model'] = array('coursemodel');
Но другая функция в моей модели работает нормально, так как вы можете сказать, что она неверна.
Есть ли у этой модели другие функции?
Датский брат Али, я добавил другую функцию, которую я использую на идентификаторе. Эта функция, когда я звоню со своего контроллера, работает нормально.
прежде чем вы попытаетесь вызвать свой метод deletecour - попробуйте вывести имя класса - var_dump(get_class($this->coursemodel)); и опубликуйте, что там - я подозреваю, что вы каким-то образом перезаписываете свою собственную переменную - помимо того факта, что вы не придерживаетесь соглашения о создании модели ( если на то пошло, присмотритесь сюда codeigniter.com/userguide3/general/…)
1 - в Codeigniter Class Names должен начинаться с прописная буква. codeigniter.com/userguide3/general/controllers.html 2- имя файла модели также режим uppercase starting.
другая вещь заключается в том, что вы можете напрямую передать $ id в качестве параметра функции. не используйте $ this-> uri-> segment (4)! потому что он загружает библиотеку и вызывает в ней метод. просто передайте свой идентификатор как параметры функции.






у вашей модели ...
имя вашего класса - это верблюжий регистр .. в документации codeigniter .. я где-то читал, чтобы использовать подчеркивание для именования классов с первым позже в качестве заглавной ... измените имя вашей модели с CourseModel на Course_model и попробуйте ...
Причина не в этом.
Брат Маниш Ансари: все функции в моей модели работают нормально, когда я вызываю функции. Но, к сожалению, почему это не работает, я не знаю. Все правильно. Проверял разными способами.
я не знаю, почему это происходит ... но попробуйте получить все методы, доступные в вашем классе ... чтобы вы могли найти это ... почему вы не можете вызвать свой метод в модели ...
получить все методы, доступные в вашей модели
class CourseModel extends CI_Model
{
public function __construct()
{
parent::__construct();
var_dump(get_class_methods($this));
EXIT;
}
}
Привет, ребята, прежде всего спасибо, потому что вы все очень часто отвечали на мой вопрос. Я обнаружил проблему в своем коде. В моем autoload.php я прошел
$ autoload ['модель'] = массив ('модель курса', 'администратор / модель курса');
Это две разные модели, одна для веб-сайта, а вторая для администратора. Итак, когда я называл название модели. Проблема здесь в том, что имя моей модели противоречило, или вы можете сказать, что вызывалась внешняя модель, которая не предназначена для администратора, и не было метода с именем, например deletecour ($ elete).
Итак, вот почему возникла ошибка. Спасибо за ответы и извините за то, что потратили время на эту глупую ошибку.
$ this-> coursemodel-> deletecour ($ elete);
извини, брат, это $ elete.