문제

2 모델 간의 다수의 관계를 만들려고 노력하고 있습니다 : users_role 및 users_right

class Model_Users_Role extends ORM{
    protected $_has_many = array(
        'rights' => array(
            'model'   => 'users_right',
            'through' => 'users_roles_rights',
        ),
    ); 
}

class Model_Users_Right extends ORM{    
    protected $_has_many = array(
        'roles' => array(
            'model'   => 'users_role',
            'through' => 'users_roles_rights',
        ),
    );
}
.

이 작업을 수행하려고합니다 :

$role = ORM::factory('users_role', 1);
$right = ORM::factory('users_right', 1);
$right->add('roles', $role);
.

오류 :

Database_Exception [ 1054 ]: Unknown column 'role_id' in 'field list' [ INSERT INTO `users_roles_rights` (`users_right_id`, `role_id`) VALUES ('1', '1') ]
.


나는 다른 쪽에서 그것을 만들려고 노력했다 :

$role = ORM::factory('users_role', 1);
$right = ORM::factory('users_right', 1);        
$role->add('rights', $right);
.

새 오류 :

Database_Exception [ 1054 ]: Unknown column 'right_id' in 'field list' [ INSERT INTO `users_roles_rights` (`users_role_id`, `right_id`) VALUES ('1', '1') ]
.

Pivot 테이블에서 users_role_idusers_right_id 필드 이름을 사용하려면 ORM을 사용할 것으로 예상했지만 멀리 키의 잘못된 이름을 사용합니까?내가 실수 한 곳에서?

도움이 되었습니까?

해결책

기본값이 설정된 위치를 확인합니다.. 이것을 시도하십시오 :

class Model_Users_Role extends ORM{
    protected $_has_many = array(
        'rights' => array(
            'model'   => 'users_right',
            'far_key' => 'users_right_id',
            'through' => 'users_roles_rights',
        ),
    ); 
}

class Model_Users_Right extends ORM{    
    protected $_has_many = array(
        'roles' => array(
            'model'   => 'users_role',
            'far_key' => 'users_role_id',
            'through' => 'users_roles_rights',
        ),
    );
}
.

Kohana는 관계가 아직 존재하지 않는지 확인하지 않습니다.

두 개의 외래 키 열에있는 복합 고유 키로 데이터베이스 테이블 에서이 값을 적용하거나 코드를 추가하기 전에 관계가 아직 없는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top