Вызов неопределенного метода Main_data :: candid_pro () в codeigniter - PullRequest
0 голосов
/ 26 октября 2018

контроллер

<?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    class Test extends CI_Controller {
        function __construct() {
            parent :: __construct();
            $this->load->model('Main_data');
        }

        public function my_profile() {
            $data['user_id'] = $this->session->userdata('user_id');
            $ids = $data['user_id'][0]['user_id'];
            $data['user_project'] = $this->Main_data->user_pro($ids);
            $this->load->view('user/my-profile',$data);
        }
    }

модель: Main_data

<?php  
    class Main_data extends CI_Model  {  
        function __construct()  {   
            parent::__construct();  
        }
        public function user_pro($ids) {
            $this->db->select('*');
            $this->db->from('user_project');
            $this->db->where('user_id',$ids);
            $query = $this->db->get();
            $result = $query->result_array();
            return $result;
        }
    }

В этом коде у меня есть контроллер Test, где у меня есть модель нагрузки Main_data и функция my_profile.Теперь, когда я запускаю свою программу, она выдает ошибку, как указано ниже:

Fatal error: Call to undefined method Main_data::user_pro()

Я не знаю, где я делаю неправильно?Итак, как я могу исправить эту ошибку?Пожалуйста, помогите мне.

Спасибо

1 Ответ

0 голосов
/ 26 октября 2018

первым делом загружать модели в нижнем регистре, даже если вы назвали их в верхнем регистре $this->load->model('main_data');

Для контроллера создайте глобальную переменную public $data сразу после того, как вы определили класс. Вы можете вызвать эту переменную в вашем классе с помощью $this->name (в данном случае $this->data).

В вашем construct(), после загрузки вашей модели, позвоните так:

$this->data = $this->my_model->function_i_want_to_call(parameters);

загрузит ваш глобальный $data необходимой вам информацией о работе в модели

и сделайте такую ​​функцию для своих контроллеров

public function index() {
    $this->load->view('location_of_view',$this->data);
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...