У меня есть две таблицы MySQL, предметы и книги, а также третья таблица для определения отношений «многие ко многим» между этими двумя:
CREATE TABLE IF NOT EXISTS `books` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`isbn13` char(13) NOT NULL,
`isbn10` char(10) NOT NULL,
`author` varchar(255) NOT NULL,
`language` varchar(100) NOT NULL,
`edition` smallint(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
CREATE TABLE IF NOT EXISTS `books_subjects` (
`subject_id` int(11) NOT NULL,
`book_id` int(11) NOT NULL,
PRIMARY KEY (`subject_id`,`book_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `subjects` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`institution_id` mediumint(9) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
Чтобы добавить новую тему, я использую пакет ORM:
<?php
$subject = Model_Subject::forge(array(
'name' => Input::post('name'),
'institution_id' => Input::post('institution_id'),
));
$subject->save();
?>
Я также добавил отношение «многие ко многим» к модели «Тема»:
protected static $_many_many = array('books');
Получение предметов с помощью назначенных им книг работает нормально (я добавил несколько записей втаблица books_subjects вручную), но я не знаю, как добавить отношения с помощью пакета ORM.Отношения находятся в массиве, подобном этому (полученному с помощью Input :: post ()):
array(2) {
[0]=>
string(1) "2"
[1]=>
string(1) "3"
}
Для кого-то, кто имеет некоторый опыт работы с FuelPHP, это должно быть довольно легко, но я просто не могу понять этоout ...
Заранее спасибо за помощь!