Codeigniter没有创建模型,也没有告诉我为什么不能


codeigniter won't create a model and won't tell me why not

控制器代码(包括我的测试):

$inventory = $this->load->model('character/inventoryModel');
//include('C:'xampp'htdocs'proj'application'models'character'inventoryModel.php');
//$testObject = new InventoryModel(43);
//var_dump($inventory); die();
echo $inventory->checkInventory(25, 1, 43);

模型头和构造函数:

class InventoryModel extends CI_Model
{
protected $who,
          $backpackCount,
          $equippedCount;
public function __construct()
{
    $this->backpackCount = 0;
    $this->equippedCount = 0;
    parent::__construct();
}

如果我从测试代码调用模型返回良好,但从CI本身我得到:

致命错误:调用对象上的成员函数非

转储实例返回null -模型没有从CI内部实例化,但如果我做一个基本的包含和新的实例化很好。我做错了什么?

试试这个:

$this->load->model('character/InventoryModel');
echo( $this->InventoryModel->checkInventory(25, 1, 43) );

来自CodeIgniter文档:

加载后,您将使用与您的类同名的对象访问您的模型函数:

$this->load->model('Model_name');
$this->Model_name->function();

链接:https://ellislab.com/codeigniter/user-guide/general/models.html.

你还应该注意,你在加载模型时使用了错误的名称。名称应该是"InventoryModel"而不是"InventoryModel",因此与类本身同名。

你会得到致命的错误消息,因为model方法不返回任何东西,而且根据文档,它根本不应该返回。只需加载没有赋值的模型,然后通过模型类的名称使用它,如上面和文档中所示:

$this->InventoryModel->checkInventory(25, 1, 43)

我想要的可以通过向模型构造函数传递一个名称参数来实现:

$this->load->model('myModel', 'myCustomModelName');
$value = $this->myCustomModelName->getValue();

就是这么简单。