Кохана "имеет много" вопроса
У меня есть модель с именем разрешения.
Разрешение имеет много ролей Разрешение имеет много пользователей Разрешение имеет много запрещенных пользователей
Ниже из модели разрешений:
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 ]: столбец'missiondeny_id'указан дважды [INSERT INTO user_permissiondeny
(permissiondeny_id
, permissiondeny_id
) VALUES ('1', 1)] ~ MODPATH / database / classes / kohana / database / mysql.php [194]
Любые предложения относительно того, что я скучаю?
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
, так далее