Question

i want to create news item in codeigniter with use slug but is error display like this.

> Call to a member function insert() on a non-object in line 34

I am a newbie in Codeigniter and couldn't really figure out how to solve this.

my controller

    function tambah_profil()
        {
            $this->data['title'] ='create a new items';

            $this->form_validation->set_rules('judul', 'Judul', 'required');
            $this->form_validation->set_rules('content', 'Content', 'required');

            if ($this->form_validation->run() == FALSE) 
            {
                $this->data['contents'] = $this->load->view('admin/profil/tambah_profil', '', true);

            }else{

                $this->mhalaman->insert_profil();
                $this->data['contents'] = $this->load->view('admin/profil/view_profil', '', true);

            }

            $this->data['orang'] = $this->mlogin->dataPengguna($this->session->userdata('username'));
            $this->data['contents'] = $this->load->view('admin/profil/tambah_profil', '', true);
            //$this->data['contents'] = 'admin/profil/tambah_profil';
            $this->load->view('template/wrapper/admin/wrapper_ukm',$this->data);
        }

my model

var $db;
    private $tbl_halaman = 'halaman';

    public function __construct()
    {
        parent ::__construct();
        $this->load->database();
    }

    function get_profil($slug = FALSE)
    {
        if ($slug === FALSE)
        {
            $query = $this->db->get($this->tbl_halaman);
            return $query->result_array();
        }

        $query = $this->db->get_where($this->tbl_halaman, array('slug'=>$slug));
        return $query->row_array();
    }
function insert_profil()
        {
            $slug = url_title($this->input->post('judul'),'dash', TRUE);

            $data = array(
                'judul'         => $this->input->post('judul'),
                'slug'          => $slug,
                'content'       => $this->input->post('content')
            );
            return $this->db->insert($this->tbl_halaman ,$data); //line 34
        }

please help me what to do. thank you.

Was it helpful?

Solution

Please check whether you have loaded $this->load->database() inside the model constructor.

$this->db->method_name(); will only work when the database library is loaded.

If you plan to use the database throughout your application, I would suggest adding it to your autoload.php in /application/config/.

$autoload['libraries']=array('database');

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top