0

У меня есть три компании, группа и компания group_group.Datamapper с codeigniter сэкономить многие на многие отношения

Я получаю значения от должности при сохранении компании.

В моей форме компании у меня есть несколько блоков выбора, которые имеют список групп.

Моя компания получает спасение правильно, но теперь я хочу добавить запись в таблицу company_group с последним вставленным идентификатором компании и выбранной группы.

Я установил 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); 

    } 

} 

Пожалуйста, помогите мне с этим

ответ

1

Вы не загружающего компании или группы O bjects правильно. При создании экземпляра компании, вам нужно сделать:

$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

+0

Большое спасибо лута я решил это уже :-) –