2013-03-13 127 views
0

在用户可以添加视频的网站上工作。每个视频可以在很多部分。它也可以有很多问题。视频与问题和部分类都有一对多的关系。一对多保存,codeigniter DataMapper

,我发现了部分视频类是这样的:

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

然后保存这样的:

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

其中$ v是一个视频对象,$ u是一个用户对象和$ q是一个问题对象。

我想允许用户POST多个问题和部分。我如何保存这些关系。 $ s和$ q应该是对象数组吗?

回答

1

我不是100%确定我明白你的意思,但是是的,yu可以同时保存多个关系。

像这样:

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

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

谢谢。那正是我所期待的。不知道我在文档中错过了它。 – erfling 2013-03-17 23:37:41

0

您在数据库中使用不同的表格。如视频,问题与VideoQuestion您存储的视频ID与不同的问题的id

然后VideoExample会是什么样子:

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

插入这个数据,首先将视频和

获得其ID
$videoId = $this->db->insert_id() 

对你的问题做同样的事情,你有你的ID;) 其他表相同,你就完成了。祝你好运!

+0

我已经有了设立的所有我的关系表,单节约的工作就好了。例如,我可以保存视频和部分之间的关​​系。我需要做的是保存视频和任意数量的部分之间的关​​系。有没有一个快速的方法来做到这一点,或者我只需要遍历$ _POST ['节']并每次保存一个关系?对不起,如果我的问题不清楚。 – erfling 2013-03-13 15:44:36