0

我在控制器文件夹中有一个具有这种结构的项目:

  • 地方.php
  • 用户.php
  • 项目.php
  • ...

在我的模型文件夹中:

  1. Place.php(里面的名字是类 Place extends ActiveRecord\Model)
  2. 用户.php
  3. ...

在我的控制器 places.php 中,如果我想加载一个模型,我必须这样做:

$this->load->model('Place');

之后我必须这样调用我的方法:

$this->place->get_all_places();

它在我的本地主机中工作但不在我的服务器中我在服务器中检查我的 php 版本,它是 5.6。

我该如何解决?

那是我的模型文件Place.php

    class Place extends ActiveRecord\Model
    {
        static $table_name = 'places';
        static $has_many = array(
        );


        public function get_all_places()
        { 
            return true;
        }
}

那是我的控制器文件places.php

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

    class Places extends MY_Controller {

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

            if($this->user){
                $access = TRUE;

            }else{
                redirect('login');
            }

        }   
        function index()
        {
            $this->content_view = 'places/all';
        }

        function get_places(){

            $this->theme_view = '';

            $this->load->model('Place');
            $this->place->get_all_places();
        }
}

错误是:

Unable to locate the model you have specified: place
4

2 回答 2

3

您的模型文件名应该是

Places_model.php

和内部模型

class Places_Model extends CI_Model # Changed 
{
    static $table_name = 'places';
    static $has_many = array();


    public function get_all_places()
    { 
        return true;
    }

}

Codeigniter 中的模型

于 2016-12-22T17:08:46.447 回答
0

我认为每件事都是对的。但问题是由于这条线..

class Place extends ActiveRecord\Model

如果您定义了一个扩展的新模型CI_Model。然后新模型的名称不能像ActiveRecord\Model.Name 可能是ActiveRecordModel.SO 一个解决方案可以是..如果您在文件夹中定义命名为的新模型,则替换上面的 ActiveRecordModelapplication/core如下.

class Place extends ActiveRecordModel

如果您没有定义任何新模型,则可以另一种解决方案。然后只需将上面的行替换为

 class Place extends CI_Model
于 2016-12-22T17:26:49.970 回答