2013-03-13 3 views
0

Работа на сайте, где пользователь может добавлять видео. Каждое видео может быть во многих разделах. У него также может быть много вопросов. Видео имеет отношения «один ко многим» как с вопросами, так и с разделами.one to many save, codeigniter DataMapper

Я получаю раздел и видео классы, как это:

$s = new Section(); 
    $s->where('section', $this->post->section)->get(); 

затем сохранить как это:

$v->save($u, $s, $q); 

где $ v это видео объект, $ и является объектом пользователя и $ q - объект вопроса.

Я хочу разрешить пользователю POST несколько вопросов и разделов. Как сохранить эти отношения. Должны ли $ s и $ q быть массивы объектов?

ответ

1

Я не уверен на 100%, что я понимаю, что вы имеете в виду, но да, вы можете сохранить несколько отношений одновременно.

Как это:

$s = new Section(); 
$s->where_in('section', $array_with_sections_ids)->get(); 

$v->save(array($u, $s->all, $q)); 
+0

Спасибо. Это именно то, что я искал. Не знаю, как я пропустил это в документации. – erfling

0

В базе данных используются разные таблицы. Как и видео, Вопросы и VideoQuestion где хранятся идентификатор видео с различным Вопросом идентификаторы

Тогда VideoExample будет выглядеть так:

| video_id | question_id | 
-------------------------- 
| 1  |  1  | 
| 1  |  5  | 
... 

для вставки этих данных, сначала вставить видео и получить его ID с

$videoId = $this->db->insert_id() 

Сделайте то же самое для своего вопроса, и у вас есть свой ID;) То же самое для других столов, и все готово. Удачи!

+0

Я уже получил все мои реляционные таблицы, установленные, и сингл сохраняет работу просто отлично. Например, я могу сохранить связь между видео и секцией. Мне нужно сохранить связь между видео и произвольным количеством разделов. Есть ли быстрый способ сделать это, или мне нужно просто перебирать $ _POST ['разделы'] и сохранять отношения каждый раз? Извините, если мой вопрос неясен. – erfling