回答編集履歴
2
追記
answer
CHANGED
@@ -9,4 +9,15 @@
|
|
9
9
|
※通常、複数形なんですがモデル自体が単数形になっているので、単数形の可能性もあるかもしれません
|
10
10
|
※`subject_participant.participant_idx`も同じような感じかと
|
11
11
|
|
12
|
-
CakePHPのマニュアルとしては、[BelongsToMany アソシエーションの保存](https://book.cakephp.org/3.0/ja/orm/saving-data.html#id18)が参考になると思います。
|
12
|
+
CakePHPのマニュアルとしては、[BelongsToMany アソシエーションの保存](https://book.cakephp.org/3.0/ja/orm/saving-data.html#id18)が参考になると思います。
|
13
|
+
|
14
|
+
**追記**
|
15
|
+
まずは、フォームの$this->request->getData()を使わず、以下の配列の値で保存できるかやってみたらどうでしょうか
|
16
|
+
```
|
17
|
+
$data = [
|
18
|
+
'subject_idx' => 1,
|
19
|
+
'subject_equipments' => [
|
20
|
+
'_ids' => [1, 2, 3, 4]
|
21
|
+
]
|
22
|
+
];
|
23
|
+
```
|
1
誤字
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
回答依頼が来ていたので、分かる範囲で回答しますね...
|
2
2
|
|
3
|
-
まず、コントローラ側の`$this->Subject->saveMany($subject)`は$this->Subject->save($subject)が正しいと思います。保存しようとしてるエンティティは1つだからです。アソシエーションを一緒に保存する場合でもsave()です。
|
3
|
+
まず、コントローラ側の`$this->Subject->saveMany($subject)`は`$this->Subject->save($subject)`が正しいと思います。保存しようとしてるエンティティは1つだからです。アソシエーションを一緒に保存する場合でもsave()です。
|
4
4
|
|
5
|
-
後は、テンプレート側も問題だと思います。Form->controlの第一引数であるフィールド名の指定の仕方は若干ややこしいです。
|
5
|
+
後は、テンプレート側も問題だと思います。`$this->Form->control()`の第一引数であるフィールド名の指定の仕方は若干ややこしいです。
|
6
6
|
* `subject.subject_idx`は、`subject_idx`でいいはずです。subject自身であれば、`subject.`を指定しません。
|
7
7
|
* `subject_equipment.equipment_idx`は、`subject_equipments._ids`か`subject_equipment._ids`だと思います。
|
8
8
|
※`_ids`というのはIDのリストを意味する特別な単語です
|