【问题标题】:Kohana - pdo error in auth moduleKohana - auth 模块中的 pdo 错误
【发布时间】:2013-08-19 07:29:46
【问题描述】:

我正在 kohana 框架中编写应用程序,但用户登录方法有问题 我正在使用包含的身份验证、数据库和 orm kohana 模块。我注意到在登录方法中对我的 sqlite 数据库执行了 3 个查询:

SELECT user.* FROM users AS user WHERE username = 'dejwid' LIMIT 1  
SELECT role.* FROM roles AS role WHERE name = 'login' LIMIT 1
SELECT COUNT(*) AS records_found FROM WHERE user_id = '1' AND role_id IN ('1')

不幸的是,最后一个查询不是很好构建的(我认为),因为 FROM 之后的 TABLENAME 丢失了。这可能是我的模型中的一个问题,所以我将在下面粘贴我的模型代码:

APP_PATH/classes/model/user.php:

class Model_User extends ORM
{
    protected $_table_name = 'users';
    protected $_table_columns =  array('user_id','email','username','password','logins','last_login');
    protected $_primary_key = 'user_id';
    protected $_has_many = array('roles'=>array());

    public function unique_key($id = NULL){
        if(!empty($id) && is_string($id) && !ctype_digit($id)){
        return 'username';
        }
        return parent::unique_key($id);
    }
}

APP_PATH/classes/model/role.php:

class Model_Role extends ORM
{
    protected $_table_name = 'roles';
    protected $_table_columns = array('id','name','description');
    protected $_primary_key = 'id';
    protected $_belongs_to = array(
        'users'=>array(),
    );

    public function unique_key($id = NULL){
        if(!empty($id) && is_string($id) && !ctype_digit($id)){
            return 'name';
        }
        return parent::unique_key($id);
    }
}

如果有帮助,我想补充一点,我尝试关注this tutorial
我的问题是:为什么最后一个查询中没有tablename

【问题讨论】:

  • “为什么我的代码不起作用?”被认为是一个过于本地化的问题,因此不适合本网站。一般来说,程序员希望调试他们的代码,以获得这个问题的答案。

标签: pdo kohana


【解决方案1】:
protected $_has_many = array('roles'=>array('through' => 'roles_users'));

或者任何表名而不是roles_users

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    相关资源
    最近更新 更多