Получение ошибки Вызов неопределенного метода CourseModel :: deletecour () в Codeigniter?

Здравствуйте, разработчики, я получаю сообщение об ошибке, но не знаю почему? Все правильно, я так думаю. Я делаю простое удаление в 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();
    }
}
} 

извини, брат, это $ elete.

Kartik Verma 09.01.2019 13:27

Он исходит от моего контроллера после получения идентификатора от uri. Я делаю массив из $ elete.

Kartik Verma 09.01.2019 13:29

вы загрузили CourseModel

TarangP 09.01.2019 13:29

Да, в автозагрузке я сделал это $ autoload ['model'] = array ('admin / coursemodel');

Kartik Verma 09.01.2019 13:31

неверный метод загрузки модуля. справа это $autoload['model'] = array('coursemodel');

TarangP 09.01.2019 13:37

Но другая функция в моей модели работает нормально, так как вы можете сказать, что она неверна.

Kartik Verma 09.01.2019 13:46

Есть ли у этой модели другие функции?

Danish Ali 09.01.2019 13:49

Датский брат Али, я добавил другую функцию, которую я использую на идентификаторе. Эта функция, когда я звоню со своего контроллера, работает нормально.

Kartik Verma 09.01.2019 13:54

прежде чем вы попытаетесь вызвать свой метод deletecour - попробуйте вывести имя класса - var_dump(get_class($this->coursemodel)); и опубликуйте, что там - я подозреваю, что вы каким-то образом перезаписываете свою собственную переменную - помимо того факта, что вы не придерживаетесь соглашения о создании модели ( если на то пошло, присмотритесь сюда codeigniter.com/userguide3/general/…)

sintakonte 09.01.2019 14:53

1 - в Codeigniter Class Names должен начинаться с прописная буква. codeigniter.com/userguide3/general/controllers.html 2- имя файла модели также режим uppercase starting.

Ali Qorbani 09.01.2019 16:52

другая вещь заключается в том, что вы можете напрямую передать $ id в качестве параметра функции. не используйте $ this-> uri-> segment (4)! потому что он загружает библиотеку и вызывает в ней метод. просто передайте свой идентификатор как параметры функции.

Ali Qorbani 09.01.2019 16:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
11
283
3

Ответы 3

у вашей модели ... имя вашего класса - это верблюжий регистр .. в документации codeigniter .. я где-то читал, чтобы использовать подчеркивание для именования классов с первым позже в качестве заглавной ... измените имя вашей модели с CourseModel на Course_model и попробуйте ...

Причина не в этом.

Danish Ali 09.01.2019 13:47

Брат Маниш Ансари: все функции в моей модели работают нормально, когда я вызываю функции. Но, к сожалению, почему это не работает, я не знаю. Все правильно. Проверял разными способами.

Kartik Verma 09.01.2019 13:49

я не знаю, почему это происходит ... но попробуйте получить все методы, доступные в вашем классе ... чтобы вы могли найти это ... почему вы не можете вызвать свой метод в модели ...

получить все методы, доступные в вашей модели

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);

Другие вопросы по теме