2013-10-09 4 views
0

CakePHP 애플리케이션에 두 가지 모델 인 사용자 및 그룹이 있습니다. 처음에는 두 사람 사이에 관계가 없었습니다. 이제 데이터베이스 테이블 그룹에, 나는 수동으로 열 USER_ID를 추가 그래서 지금은 사이에 다음 관계를 가지고 있다는 두 가지 :cakephp가 데이터베이스 테이블에 외래 키 열을 수동으로 추가 한 후 모델 연결을 감지 할 수 없음

Groups belongsTo Users 
Users hasMany Groups 

이제 다음과 같은 오류가 계속 어떤 이유로이 일 후 :

1054: Unknown column 'Group.user_id' in 'field list' 

CakePHP의 bake 명령을 실행하여 Cake가 자동으로 두 모델 간의 관계를 감지하는지 확인하려고했습니다. User 모델을 굽 혔을 때, CakePHP는 User와 Group 사이에 hasMany 관계가 있음을 감지하지 못합니다. 어떤 아이디어가 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까?

+0

캐시를 비우십시오. –

+0

어떤 캐시를 지워야합니까? – user765368

+0

cake 2.x에서는 app/tmp/cache/models/내의 모든 것을 삭제합니다. Cake 1.3에 대해서는 확실하지 않지만 약간 다를 수 있습니다. –

답변

0

은 아마 당신이 당신의 연결을 방법을 오해하고 감사하지만, 나는 그것을 상상 :

A User belongsTo a Group

A Group hasMany Users

예 사용자 모델 :

class User extends AppModel { 
    public $belongsTo = array(
     'Group' => array(
      'className' => 'Group', 
      'foreignKey' => 'group_id' 
     ) 
    ); 
} 

예 그룹 모델 :

class Group extends AppModel { 
    public $hasMany = 'User'; 
} 

사용자 테이블에 group_id 필드가 필요합니다.

이 모든 것은 사용자 당 하나의 그룹을 원한다고 가정합니다. 사용자가 여러 그룹을 가질 수있게하려면 사용자와 그룹간에 HABTM 관계를 정의하거나 Access Control Lists을 연구하면보다 나은 방향을 제시 할 수 있습니다 (아직 Cake의 ACL 구성 요소를 아직 활용하지 못했습니다).

어느 쪽이든, 나는 Cakebook 페이지 Associations: Linking Models Together을 검토하는 것이 좋습니다.