2012-04-03 2 views
1

설명서가 읽히지 않아서 나를 도와주지 않는 것 같습니다.Many to DataMapper CodeIgniter

일대일 관계가 많습니다. 더 쉬운 방법이있을 것입니다 만, 다 대다 관계에있을 때 붙어 있습니다.

꽤 몇 가지를 시도했지만, 기본적으로 나는 세 개의 테이블이 있습니다

homes: 
- id 
- address_id 
- price 
- etc 

features: 
- id 
- name 

features_homes 
- id 
- feature_id 
- home_id 

내가 설정 내 모델 꽤 몇 가지 방법했습니다.

var $has_many = array(
    'feature' => array(
     'class' => 'feature', 
     'other_field' => 'home', 
     'join_self_as' => 'home', 
     'join_other_as' => 'feature', 
     'join_table' => 'features_homes' 
    ) 
); 

그리고 문제는 내가 집과 관련된 여러 기록을 얻을 방법을 알아낼 수 없습니다입니다

var $has_many = array('feature'); 

의 기본 버전.

나는 하나의 항목이 아니라 하나의 항목으로 끝난다.

예 출력 :

[id] => 1 
[address_id] => 1 
[latlong] => 00.000, -00.00000 
... 
[feature_id] => 1 
[feature_name] => Hard Wood Floors 

나는

[id] => 1 
[address_id] => 1 
[latlong] => 00.000, -00.00000 
... 
[features] => // Object of all items 

답변

1

당신은 저장할 때 그들을 연결하여 다른 하나 개의 객체를 연결 얻기 위해 노력하고 있어요.

당신은 여러 번 수행 할 수 있습니다

$parent = new Parent(1); 
$childA = new Child(1); 
$childB = new Child(2); 

$parent->save($childA); $parent->save($childB); 

또는를 배열을 전달하여 :

$parent = new Parent(1); 
$children = array(
    new Child(1), 
    new Child(2), 
); 

$parent->save($children); 
+0

당신이 이미 당신이 액세스하려는 데이터베이스에 저장이 데이터가 있다면? DataMapper로 모든 것을 저장해야 원하는 방식으로 표시 할 수 있습니까? – Seth

+0

그러면 생성하지 않고 가져올 것입니다. – WanWizard

+0

프레임 워크는 정말 멋지지만, 실제로 그것을 알아 내기 위해 계속해서 두들겨 야 할 필요가 있다고 생각합니다. 나는 옳지 않은 무언가를 가지고 있으며, 그것이 나의 코드라고 확신한다. 다양한 시나리오를 통해 온라인으로 진행되는 좋은 자습서를 알고 계십니까? 찾고 있던 결과를 얻을 수 있었지만 데이터를 얻기 위해 루프 안에서 루프를 수행해야했습니다. 내 모델을 어떻게 든 변경해야하므로 객체의 단일 키 아래에 여러 결과를 그룹화 할 수 있다고 생각합니다. – Seth