-1

私は許可という名前のモデルを持っています。

許可には多くの役割があります 許可には多くのユーザーがいます 許可には多くの拒否されたユーザーがあります

以下は権限モデルからのものです。

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 致命的なエラー: Uncaught Database_Exception [ 1110 ]: 列 'permissiondeny_id' が 2 回指定されました [ INSERT INTO user_permissiondeny( permissiondeny_id, permissiondeny_id) VALUES ('1', 1) ] ~ MODPATH/database/classes/kohana/database/mysql.php [ 194 ]

私が欠けているものに関する提案はありますか?

4

1 に答える 1

1

has_manyORMの命名規則に従っていないため、宣言を変更する必要があります。

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_idpermission_id

于 2012-12-27T20:58:52.743 に答える