2012-04-06 2 views
0

Я новичок. Здесь я хотел бы спросить всех вас, как я могу сохранить многие из многих отношений в трех таблицах (таблица A, таблица A-b, таблица B)? Теперь я пытаюсь сохранить новую запись с новым идентификатором в таблицу A, и у меня есть некоторые идентификаторы таблицы B, которые я хочу сохранить в средней таблице AB, зависит от идентификатора таблицы A. Если у кого-то есть опыт с этим, пожалуйста, добро пожаловать. Пример:Сохранение многих ко многим отношениям в datamapper ORM - Codeigniter

$a = new modelA(); 
$a->name = ‘new name’; 
$a->des = ‘something to say’; 

$b = new modelB(); 
$IDs = new array(1,2,3); //IDs of records in table B 


$a->save(array($IDs=>$b)); 

ответ

1

Переходя идентификаторы не поддерживаются, DataMapper нуждается в объектах, чтобы быть в состоянии связать.

Если у вас есть массив идентификаторов, вы можете получить объекты с помощью where_in() запрос, а затем сохранить отношения с помощью

$a->save($b->all); 
+0

Я просто хочу сохранить новую запись в таблицу A и сохранить новый идентификатор записи таблицы A со многими идентификаторами таблицы B в среднюю таблицу (таблица A-B), потому что таблица A имеет много-много отношений с таблицей B. – chantheoun

0

У меня есть ценности, которые получают от почтовой формы, как:

  • 'новое имя'
  • 'новое описание'
  • массив ('val1', 'значение2', 'val3')

в мой контроллер, я хочу, чтобы сохранить новую запись в таблице А с: - «новое имя» - «новое описание» и массив («VAL1», «val2», «значение2») я получил идентификаторы их из таблицы B, которая имеет много ко многим со столом A (новая запись будет сохранена).

Итак, когда я сохраняю таблицу A, идентификаторы таблицы B также сохраняются в средней таблице A-B с новым идентификатором таблицы A, которую я просто сохраняю. Как сэкономить?