저는 cakePHP의 초보자입니다. 사용자가 할당 된 프로젝트의 현재 상태를보고 할 수있는 매우 작은 "상태보고"프로젝트를 만들었습니다. .belongsTo 관계 및 cakePHP의 필터링
저는 여러 계층 사용자가 사용자, 프로젝트를 만들고 서로 할당하는 관리자로 서로 관리 할 수 있도록하기 위해 acl, auth 및 세션 구성 요소를 사용하고 있습니다.
$this->data['Status']['user_id'] = $this->Auth->user('id');
내가 필요한 건 지금하고 도움 : 사용자가 로그인하고 자신의 로그인 세션이 자동으로 상태에 대해 "USER_ID"을 담당하는 "상태"를 추가로 전환 될 때 나는 또한 있도록 문제를 해결 한 사용자가 "상태"를 추가하기 위해 선택할 수있는 프로젝트의 옵션을 필터링합니다.
나는 사용자와 필드 사이에 * id, project_id, user_id *와 함께 * projects_users *라는 이름의 프로젝트 사이의 관계를 유지하는 테이블을 가지고 있습니다. 그러나이 설정을 굽고 나면 사용자가 "상태"를 추가 할 때 드롭 다운 메뉴는 "할당 된"프로젝트가 아닌 모든 프로젝트를 제공합니다.
할당 된 프로젝트에 사용자 옵션을 필터링하고 싶습니다. 내가 설정해야 할 관계가 더 많습니까? 아니면 작성하기가 아주 쉬운 작은 함수입니까? 어떤 도움이라도 대단히 감사하겠습니다. 정보를 빠뜨린 경우 다른 것을 게시하게되어 기쁩니다. 당신은 열이 가에을 PROJECT_ID라고해야, 데이터베이스에서
var $belongsTo = array(
'Group' => array(
'className' => 'Group',
'foreignKey' => 'group_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
var $hasMany = array(
'Status' => array(
'className' => 'Status',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
var $hasAndBelongsToMany = array(
'Project' => array(
'className' => 'Project',
'joinTable' => 'projects_users',
'foreignKey' => 'user_id',
'associationForeignKey' => 'project_id',
'unique' => true,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
)
);
사용자와 프로젝트의 관계를 잘못 설정하는 현재 테이블 project_users가이 설정 방법입니까? 현재 project_id 및 user_id가 있습니다. 이상적으로는 할당 된 프로젝트에서 사용자 테이블을 깨끗하게 유지하고 프로젝트에 여러 사용자가있을 가능성이 있습니다. 현재 사용자를 검색 할 때 연결된 프로젝트가 표시되지만 가장 낮은 사용자가 "상태"만 추가 할 수 있도록 제한하고 있습니다. 따라서 세션의 활성 사용자의 관련 프로젝트를 검색하고 싶습니다. 원래 게시물에도 내 사용자 모델을 추가하고 있습니다. –
이것은 HABTM 테이블입니다. N : M 관계가 있다면 괜찮아. 여기의 경우처럼 보입니다. find 문에서 관계를 가져 오기 위해 여기에 사용자 정의 조인을 사용해야합니다. 자세한 내용은 요리 책을 참조하십시오. – mark
@Curtis 상태를 추가 할 때 프로젝트를 검색하는 데 사용하는 코드를 표시하십시오. –