Kohana “has many” issue-Collection of common programming errors
I have a model named permission.
Permission has many roles permission has many users permission has many denied users
Below is from the permissions model:
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'),
);
The user and role relationships work as expected. I can select the deny permission, but when I try to add a new one I get the following php error:
PHP Fatal error: Uncaught Database_Exception [ 1110 ]: Column ‘permissiondeny_id’ specified twice [ INSERT INTO user_permissiondeny (permissiondeny_id, permissiondeny_id) VALUES (‘1’, 1) ] ~ MODPATH/database/classes/kohana/database/mysql.php [ 194 ]
Any suggestions as to what I’m missing?
-
Since you are not following the naming conventions in ORM, you need to change your
has_manydeclaration: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'), );note the
far_keypart, you need to specify the name of the column that you’ll be looking for. may it beuser_id,role_id,permission_id, etc
Originally posted 2013-11-26 18:03:10.