模型未加载到视图文件中

时间:2017-11-29 13:40:42

标签: php codeigniter

我正在尝试在我的视图文件中加载模型,但问题是模型没有加载并且给出了错误Message: Undefined property: CI_Loader::$CoupanCatModel

以下是我的代码

控制器

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class CoupanCategory extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->model('coupans/CoupanCatModel');
        //$this->load->model('ForeignData_model');
    }
    public function init(){
        $logoUrls = 'no-image.jpg';
        $webUrls = 'no-image.jpg';
        $mobileUrls = 'no-image.jpg';

        $this->load->library('upload');

        $config['upload_path'] = './assets/images/coupans/category/';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['encrypt_name'] = TRUE;
        $config['max_size']      = 20000; 
        $config['max_width']     = 1024; 
        $config['max_height']    = 768;

        $this->upload->initialize($config);
        if ( ! $this->upload->do_upload('ccImage')){
            $error = array('error' => $this->upload->display_errors());     
        }
        else{
            $data = $this->upload->data();          
            $logoUrls = $data['file_name'];
        }

        $is_init = $this->CoupanCatModel->init($logoUrls);
        if ($is_init) {
            redirect(base_url().'rech/'.ACCESS_KEY.'/coupans/coupan_category?create=success&success=New coupan category create','refresh');
        }
        else
        {
            redirect(base_url().'rech/'.ACCESS_KEY.'/coupans/coupan_category?create=failed&error=something want wrong','refresh');
        }


    }

}

模型

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class CoupanCatModel extends CI_Model {

    public function init($logoUrls)
    {

        new_id: 

        $sc_id = 'SC'.mt_rand(1000,9999);

        if ($this->check_id($sc_id)) 
            goto new_id;

        $sc_title = (isset($_POST['coupan_cat_name']) && $_POST['coupan_cat_name'] != '') ? trim($_POST['coupan_cat_name']):'';

    $sc_logo = $logoUrls;

    //  $sc_web_image = $webUrls;
        //$sc_mobile_image = $mobileUrls;

        $active_flag =1;

        $this->db->set('oc_cat_id',$sc_id);
        $this->db->set('oc_cate_name',$sc_title);
        //$this->db->set('sc_description',$sc_description);
    //  $this->db->set('sc_logo',$sc_logo);
        $this->db->set('oc_web_image',$sc_logo);
        //$this->db->set('sc_mobile_image',$sc_mobile_image);

        $this->db->set('active_flag',$active_flag);

        $this->db->insert('tbl_oc_category');

        return true;
    }   



    public function get_data($oc_cat_id = false)
    {


        if ($oc_cat_id != false) {
            $this->db->where('oc_cat_id', $sc_id);
            $query = $this->db->get('tbl_oc_category');
            return $query->row_array();
        }
            $query = $this->db->get('tbl_oc_category');
            return $query->result_array();
    }


}

查看我只是加载模型

<?php

$this->load->model('coupans/CoupanCatModel');                               
$scData = $this->CoupanCatModel->get_data();

echo '<pre>ddsd';
print_r($records);
die();
?>

但问题是模型没有加载并给出错误

A PHP Error was encountered

Severity: Notice

Message: Undefined property: CI_Loader::$CoupanCatModel

Filename: coupans/coupan_category.php

Line Number: 139

1 个答案:

答案 0 :(得分:1)

为了您自己的参考,您可能需要阅读Codeigniter Style Guide的文件名等。

您提供的代码似乎是&#34;可疑&#34;事实上,您的代码中没有任何地方您要加载所谓的&#34;视图&#34;。

因此,基于您提供的内容,我已经提出了一些演示/调试代码。

请注意,您在视图中使用调用模型在MVC方案中并不完全正确,也不完全是非法的。

所以我在Linux机器上设置了这个,其中文件名等区分大小写。

<强>控制器/ coupans / CoupanCategory.php

class CoupanCategory extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('coupans/CoupanCatModel');
    }

    public function index() {
        echo "I am the controller ".__CLASS__;
        $this->CoupanCatModel->init();

        $this->load->view('coupans/coupan_category');
    }
}

<强>模型/ coupans / CoupanCatModel.php

class CoupanCatModel extends CI_Model{

    public function init($logoUrls = '')
    {
        echo "<br>I am the ".__METHOD__;
    }

    public function get_data($oc_cat_id = false)
    {
        return "<br>I am the ".__METHOD__;
    }
}

<强>视图/ coupans / coupan_category.php

<?php

$this->load->model('coupans/CoupanCatModel');
$scData = $this->CoupanCatModel->get_data();

var_dump($scData);

从你应该得到的一切......

I am the controller CoupanCategory
I am the CoupanCatModel::init
string '<br>I am the CoupanCatModel::get_data' (length=37)

这应该可以帮助您解决问题。