我有一个名为权限的模型。
权限有很多作用 权限有很多用户 权限有很多被拒绝的用户
以下是权限模型:
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_permissiondeny
(permissiondeny_id
,permissiondeny_id
)VALUES('1',1)]〜 MODPATH / database / classes / kohana / database / mysql.php [194]
关于我缺少什么的任何建议?
答案 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_id
,role_id
,permission_id
等