我在控制器文件夹中有一个这个结构的项目:
在我的模特文件夹中:
在我的控制器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
答案 0 :(得分: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;
}
}
答案 1 :(得分:0)
我认为每件事情都是对的。但问题是由于这条线......
class Place extends ActiveRecord\Model
如果你定义了一个扩展CI_Model
的新模型。然后新模型的名称不能像ActiveRecord\Model
那样。名称可能是ActiveRecordModel
。所以你可以找到一个解决方案如果您在ActiveRecordModel
文件夹中定义名为application/core
的新模型,则将...替换为如下所示。
class Place extends ActiveRecordModel
如果您没有定义任何新模型,则可以采用另一种解决方案。然后将上面的行替换为
class Place extends CI_Model