Это моя первая попытка HABTM в CakePHP, и это не так, как я надеялся.Данные моста HABTM не сохраняются
У меня есть таблица foos
и таблица bars
. Когда сохраняется foo
, я хочу связать с ним несколько bars
. Я пытаюсь сделать это с мостом bars_foos
.
Я хотел, чтобы иметь возможность сохранить таким образом, что я могу передать foo
вместе с кучей bars
что-то вроде:
array(2) {
["Foo"]=> array(1) {
["name"]=> string(7) "someFoo"
}
["Bar"]=> array(4) {
[0]=> array(1) {
["ID"]=> int(3)
}
[1]=> array(1) {
["ID"]=> int(9)
}
[2]=> array(1) {
["ID"]=> int(4)
}
[3]=> array(1) {
["ID"]=> int(15)
}
}
}
позволяет сказать someFoo
получает создан с ID 9 ... Я «d хочет следующие записи будут добавлены к bars_foos
таблице:
+--------+----------+
| bar_ID | foo_ID |
+--------+----------+
| 3 | 9 |
| 9 | 9 |
| 4 | 9 |
| 15 | 9 |
+--------+----------+
в настоящее время ничего не происходит в bars_foos
таблицы, только таблица foos
становится обновлена с т он недавно создал «someFoo». Единственный раз, когда этот мост должен постоянно обновляться, когда создание нового Foo
Я пытался следовать the CakePHP documentation с моей моделью:
class Foo extends AppModel {
public $primaryKey = "ID";
public $hasAndBelongsToMany = array(
'Bar' =>
array(
'className' => 'Bar',
'joinTable' => 'bars_foos',
'foreignKey' => 'foo_ID',
'associationForeignKey' => 'bar_ID'
)
);
}
и используя это в моем контроллере ...
$this->Foo->saveAll($data); //$data looks like the Array above in the first code block
Я также пробовал с моим $data
в этих форматах на основе вещей, которые я видел при поиске решения:
array(1) {
["Foo"]=> array(3) {
["name"]=> string(7) "FooName"
["Bar"]=> array(2) {
[0]=> array(1) {
["ID"]=> int(3)
}
[1]=> array(1) {
["ID"]=> int(2)
}
}
}
}
и
array(2) {
["Foo"]=> array(1) {
["name"]=> string(7) "fooName"
}
["Bar"]=> array(1) {
["Bar"]=> array(2) {
[0]=> array(1) {
["ID"]=> int(3)
}
[1]=> array(1) {
["ID"]=> int(2)
}
}
}
}
и получил тот же результат (новый foo
получает создан, но ничто не вставляется в bars_foos
таблице)