Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有codeigniter的Datamapper保存多对多关系_Php_Mysql_Codeigniter_Many To Many_Codeigniter Datamapper - Fatal编程技术网

Php 带有codeigniter的Datamapper保存多对多关系

Php 带有codeigniter的Datamapper保存多对多关系,php,mysql,codeigniter,many-to-many,codeigniter-datamapper,Php,Mysql,Codeigniter,Many To Many,Codeigniter Datamapper,我有三个表公司,集团和集团公司 我在拯救一家公司的同时,也从帖子中获得了价值 在我的公司表格中,我有多个选择框,其中有一个组列表 我的公司已正确保存,但现在我想在company_group表中添加记录,其中包含上次插入的公司id和所选组 我在公司和集团两个模型中都设置了多个记录,但无法在公司和集团表中保存多个记录,所以请帮我解决这个问题 公司模式 class Company extends DataMapper { var $has_one=array("group"); function __

我有三个表公司,集团和集团公司

我在拯救一家公司的同时,也从帖子中获得了价值

在我的公司表格中,我有多个选择框,其中有一个组列表

我的公司已正确保存,但现在我想在company_group表中添加记录,其中包含上次插入的公司id和所选组

我在公司和集团两个模型中都设置了多个记录,但无法在公司和集团表中保存多个记录,所以请帮我解决这个问题

公司模式

class Company extends DataMapper {
var $has_one=array("group");
function __construct() {
   parent::DataMapper();
}
}
群模型

class Group extends DataMapper {
 var $has_many=array("company");
function __construct() {
    parent::DataMapper();
    }
}
公司控制人

class Company_c extends CI_Controller {
 public function index() {

    $company = new company();
    $group=new group();
    $company->id=1;
    $group->id=2;
    $group->id=4;
    $company->save($group);

  }

}

请帮我解决这个问题

您没有正确加载公司或组对象。当您实例化一家公司时,您需要执行以下操作:

$company = new Company();
$company->where('id', 1)->get();
或者,速记更快(只要使用
id
属性):

(请注意,类名区分大小写)

然后对要加载的组执行相同的操作:

$groups = new Group();
$groups->where_in('id', array(2, 4)->get();
然后,当两个都实例化时,您可以一次性保存公司及其组:

$company->save($groups);
确保您彻底阅读了DataMapper文档,它的解释非常清楚:

$company->save($groups);