从404路径的控制器调用模型

时间:2011-11-28 20:34:41

标签: php codeigniter

这里遇到问题,在遇到404后页面被重定向后,似乎无法从模型加载方法。

型号名称:Category_Model
方法名称:get_category_menu()

在我的路线中,我已将404重叠更新为:$route[‘404_override’] = ‘whoops’;

我还有我的控制器哎呀: -

<?php
class Whoops extends CI_Controller 
{
  function index()
  {
    $this->load->model('Category_Model');
    $data['Categories'] = $this->Category_Model->get_category_menu();
    $data['main_content'] = $this->load->view('messages/whoops', null, true);
    $this->load->view('includes/template', $data);
  }
} 

因此,当我导航到不存在的页面时,我收到以下错误...

消息:Undefined property: Whoops::$Category_Model
文件名:controllers/whoops.php

我已经在这里硬编码了模型到控制器的加载,即使我在自动加载中有它,但没有运气。

到目前为止,该网站的其他所有内容都有效,这就是404问题。任何指针都会很棒,对CI来说是个新手,所以对我来说很容易。

2 个答案:

答案 0 :(得分:0)

您是否尝试构建父级?

public function __construct()
    {
        parent::__construct();

    }

function index()...

答案 1 :(得分:0)

除非模型中有一些需要它的代码,否则你应该能够以静态方法调用该方法。只需确保在Category_Model中将get_category_menu()前缀为'static'。

function index()
  {
    $this->load->model('Category_Model');
    $data['Categories'] = Category_Model::get_category_menu();
    $data['main_content'] = $this->load->view('messages/whoops', null, true);
    $this->load->view('includes/template', $data);
  }