繁体   English   中英

如何在CodeIgniter中使用datamapper

[英]How to use datamapper in CodeIgniter

我正在尝试在CodeIgniter中使用datamapper。 我已经按照安装说明进行了设置

<?php
class Users extends DataMapper{

function Users(){
    parent::DataMapper();
}

function create($username, $hashed_password, $salt, $department_id, $role_id){
    $user = new User();
    $user->username = $username;
    $user->hashed_password = $hashed_password;
    $user->salt = $salt;
    $user->department_id = $department_id;
    $user->role_id = $role_id;

    $user->save();
}

我已经在database.php上设置了数据库信息,还自动加载了datamapper和数据库库。 这是我得到的错误:

Error Number: 1146

Table 'rpt.datamappers' doesn't exist

DESCRIBE `DataMappers`

Filename: D:\web_files\tester\php\ci_tester\system\database\DB_driver.php

Line Number: 330

我错过了什么?

我认为您在示例中某个地方的类名错误,您的类称为“ Users”,但在创建方法中,您将其称为“ new User”。

错误消息“表'rpt.datamappers'不存在”实际上来自您的数据库。 看起来,生成表名的自动向导使用了错误的类名(DataMapper)而不是“ User(s?)”,请尝试将表名显式设置为您的DataMapper后代类,以确认:

class Users extends DataMapper{
    public $table = 'users';
    // ...
}

同样,如果只想委托给父构造函数,则不要用自己的构造函数覆盖它,特别是如果您不保留方法的签名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM