我已尝试过与此相关的其他帖子中的建议,但没有快乐。我试图在CodeIgniter中创建一个从数据库中获取数据的模型,但是它没有找到类CI_Model。我在主索引文件中的系统路径设置正确,我在自动加载文件中自动加载了这个模型,我无法弄清楚问题。我发现很多功能都是一样的,我还没有完成它们的编写,而且我使用第一个作为占位符。
**编辑:我根据人们的建议更新了所有这些文件,但仍然遇到同样的错误。
模型
<?php
class Model_appointments extends CI_Model {
public function __construct()
{
parent::__construct();
}
public function getAppointments()
{
$query = $this->db->get('appointments');
return $query->result();
}
public function getActiveAppointments()
{
$query = $this->db->get('appointments');
return $query->result();
}
public function getCancelledAppointments()
{
$query = $this->db->get('appointments');
return $query->result();
}
public function addAppointments()
{
$this->name = $_POST['name'];
$this->details = $_POST['details'];
$this->date = time();
$this->db->insert('appointments', $this);
}
}
?>
前端控制器
<?php
include 'application/controllers/databaseConnection.php';
include 'application/models/Model_appointments.php';
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Controller_name extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('Model_appointments'); #load Model
}
}
class Front_controller {
public function startFrontController() {
$newDatabase = new Mydb('localhost', 'root', '', 'webinnovate');
}
}
$newController = new Front_controller();
echo $newController->startFrontController();
$newAppointments = new Model_appointments();
$newAppointments->getAppointments();
?>
**控制器
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'webinnovate';
class Mydb {
public $query;
public $myConnection;
public function __construct($host, $username, $password, $dbname)
{
//establish connection
$this->myConnection = mysqli_connect($host, $username, $password, $dbname);
}
}
?>
答案 0 :(得分:0)
转到config/database.php
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root', # user name
'password' => '', # password
'database' => 'webinnovate', # Database name
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
在config/autoload.php
$autoload['libraries'] = array('database'); #load database library
在您的控制器中
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Controller_name extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('modelAppointments'); #load Model
}
}
答案 1 :(得分:0)
发生在我身上!
在我的本地Windows系统上它很好,但当我迁移到Linux服务器(我的托管服务器),然后它生成相同的错误:
这是由于Linux的区分大小写。
这些是linux中的两个不同的词:
'CI_Model'
'ci_model'
因此,如果您要保存模型,我建议您检查您的型号名称 CI_model的名称。并在“CI_Model”之类的地方访问它。
在Linux系统中 CI_Model和CI_model是两个不同的文件。
答案 2 :(得分:0)
这里有一个逻辑错误。让我们试着了解错误。
我无法帮助你完成前两步,但最后,在第三步,你不会:
<div class="row">
<div class="form-group col-md-12">
<button type="button" class="col-md-6 type btn btn-primary">Sales</button>
<img src="example.jpg" alt="Image" class="col-md-6">
</div>
</div>
功能
include()
作为$this
$this->db->insert()
的变量
__construct()
类以外的任何内容,从CI_Controller扩展但你会:
亲爱的,Tanya Branagan,我知道,你等待的答案并非如此,但你试图使用这个框架而不试图理解它是如何工作的。请耐心等待,至少阅读CI's Controllers,CI's Models和CI's Database Configuration