2012-04-03 3 views
1

Я застрял, и чтение документации, похоже, не помогает мне.Многие для многих 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

Смежные вопросы