我有三个table company,group和company_group。
我在保存公司时从帖子中获取价值。
在我的公司表单中,我有多个选择框,其中包含一个组列表。
我的公司正在获得正确的保存但现在我想在company_group表中添加记录,其中包含公司和所选组的最后插入ID。
我在公司和集团公司都设置了has_many,但无法在company_group表中保存多条记录,所以请帮我解决。
公司模式
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);
}
}
请帮我解决这个问题
答案 0 :(得分:1)
您没有正确加载公司或组对象。实例化公司时,您需要执行以下操作:
$company = new Company();
$company->where('id', 1)->get();
或,作为速记更快(只要您使用id
属性):
$company = new Company(1);
(请注意,类名区分大小写。)
然后对要加载的组执行相同的操作:
$groups = new Group();
$groups->where_in('id', array(2, 4)->get();
然后,当两者都被实例化时,您可以一次性保存公司及其组:
$company->save($groups);
确保彻底浏览DataMapper文档,无法更清楚地解释它: http://datamapper.wanwizard.eu/pages/save.html#Relationship