我在使用Codeigniter中的模型时遇到问题。我在/models/usermodel.php中设置了一个名为 Usermodel 的模型。当我尝试加载它时会停止脚本及其后的任何内容。
当我故意在 - > load->模型区域输入错误的名称时,CI会抛出一个错误,说它无法找到(如预期的那样)当一切正常时,没有任何内容被加载。
我为我的生活看不出有什么问题。任何的想法?谢谢,蒂姆
用户模型
class Usermodel {
function __construct()
{
parent::__construct();
}
function displayUser()
{
echo "test";
}
}
课程
class Page extends Controller {
function __construct()
{
parent::__construct();
}
function index()
{
echo "<h1>Test</h1>";
$this->load->model('usermodel');
$this->usermodel->displayUser();
echo "<p>Model loaded</p>";
}
}
答案 0 :(得分:8)
根据您的CI版本,您需要扩展基本模型,现在您只需要创建一个名为Usermodel
的新空白类
例如
class Usermodel extends CI_Model { //<-- Note "extends CI_model"
function __construct()
{
parent::__construct();
}
}
注意强>
此语法适用于Codeigniter 2.0
答案 1 :(得分:3)
您错过了将课程扩展为“模型”CI课程:
class Usermodel extends Model {
function __construct()
{
parent::Model();
}
function displayUser()
{
echo "test";
}
}
答案 2 :(得分:0)
您需要先加载__construct。
注意:路径不是网址,而是目录路径。
public function __construct()
{
parent::__construct();
$this->load->model('path/to/your/usermodel');
}
然后你的索引功能与你的相同。
function index()
{
echo "<h1>Test</h1>";
$this->load->model('usermodel');
$this->usermodel->displayUser();
echo "<p>Model loaded</p>";
}
答案 3 :(得分:0)
我认为这是模型的命名约定问题。如果您使用的是codeigniter 3.x,请参阅文档。
class Model_student extends CI_Model
Model_student
,然后将其加载为$this->load->model(Model_student);
http://www.codeigniter.com/user_guide/general/models.html
我希望这会对你有所帮助。