Kohana“有很多”问题

时间:2012-12-27 20:35:53

标签: kohana-3 kohana-orm kohana-3.2

我有一个名为权限的模型。

权限有很多作用 权限有很多用户 权限有很多被拒绝的用户

以下是权限模型:

protected $_has_many = array(
    'user' => array('through' => 'user_permission'),
    'permissiondeny' => array('model' => 'user', 'through' => 'user_permissiondeny','foreign_key' => 'permissiondeny_id'),
    'role' => array('through' => 'role_permission'),
);

用户和角色关系按预期工作。我可以选择拒绝权限,但是当我尝试添加新权限时,我收到以下php错误:

PHP致命错误:未捕获Database_Exception [1110]:列'permissiondeny_id'指定了两次[INSERT INTO user_permissiondenypermissiondeny_idpermissiondeny_id)VALUES('1',1)]〜 MODPATH / database / classes / kohana / database / mysql.php [194]

关于我缺少什么的任何建议?

1 个答案:

答案 0 :(得分:1)

由于您未遵循ORM中的命名约定,因此您需要更改has_many声明:

protected $_has_many = array(
  'user' => array('through' => 'user_permission'),
  'permissiondeny' => array('model' => 'user', 'through' => 'user_permissiondeny','foreign_key' => 'permissiondeny_id', 'far_key' => 'permission_id'),
  'role' => array('through' => 'role_permission'),
);

注意far_key部分,您需要指定要查找的列的名称。可能是user_idrole_idpermission_id