현재 프로젝트를 진행할 때 다소 복잡한 문제가 발생했습니다. 지금 내 문제를 더 자세히 설명해 드리겠습니다.CakePHP/Croogo : Veery complex associations
세 개의 모델 : User, UsersExtendedField 및 UsersExtended가 있습니다.
UsersExtendedField에는 수동으로 관리 할 수있는 사용자 지정 필드가 있습니다. 모든 사용자 정의 필드는 사용자보기에도 표시 될 수 있으며 물론 채워질 수 있습니다. 그런 다음 값은 UserExtended에 저장됩니다. UsersExtended에는 user_id와 field_id라는 두 개의 foreignKeys가 있습니다.
관계는 다음과 같습니다. : 사용자 hasMany UsersExtendedField, UsersExtendedField hasMany UsersExtended, UsersExtended belongsTo User, UsersExtendedField.
문제 : 사용자보기에 액세스 할 때 사용자 정보가 입력 된 양식이 표시됩니다. 모든 UsersExtendedFields도 사용할 수 있으며, ManyMemberExtended 때문에 UsersExtended 값이 충분히 있습니다. 그러나 나는 그 사용자의보기가 현재 보여지고있는 값 (들) 만 줄이기를 원한다. 여기 내 (원하는) 관계가 있습니다 :
Croogo::hookBehavior('User', 'Crooboard.ExtendedUser', array(
'relationship' => array(
'hasMany' => array(
'UsersExtendedField' => array(
'className' => 'Crooboard.UsersExtendedField',
'foreignKey' => '',
'conditions' => array('status' => 1)
),
),
),
));
class UsersExtendedField extends AppModel {
var $name = 'UsersExtendedField';
var $displayField = 'fieldname';
var $hasMany = array(
'UsersExtended' => array(
'className' => 'Crooboard.UsersExtended',
'foreignKey' => 'field_id',
'conditions' => array(
'UsersExtended.user_id = User.id'
)
),
);
}
이것은 전체 코드가 아니며, 중요한 부분입니다. 문제는 바로 내가 'UsersExtended.user_id = User.id'라고 쓴 곳에서 시작됩니다. 분명히, 이것은 작동하지 않을 것이다. 하지만 여기에 User.id에 액세스하는 방법을 알지 못합니다. 또한이 작업을 해결하기 위해 HABTM 구조를 상상할 수도 없었습니다. 이 'UsersExtended.user_id = User.id'의 의미를 작동시키는 방법을 알고 있습니까?
시간을내어 읽고 나를 읽어 주셔서 감사합니다.