質問編集履歴

5

追記

2017/03/09 13:35

投稿

ssk
ssk

スコア332

test CHANGED
File without changes
test CHANGED
@@ -259,3 +259,27 @@
259
259
  やりたいことは、「CakePHP3で一括更新・新規追加を行う」なので、分かる方は助言いただけると幸いです。
260
260
 
261
261
  よろしくお願いいたします。
262
+
263
+
264
+
265
+ ######追記
266
+
267
+ アソシエーション定義
268
+
269
+ ```PHP
270
+
271
+ $this->hasMany('Dalcheckbox15s', [
272
+
273
+ 'joinTable' => 'dalcheckbox15s',
274
+
275
+ 'foreignKey' => 'datacklists_id',
276
+
277
+ 'targetForeignKey' => 'dal15_id',
278
+
279
+ 'joinType' => 'LEFT',
280
+
281
+ 'saveStrategy' => 'replace',
282
+
283
+ ]);
284
+
285
+ ```

4

追記

2017/03/09 13:35

投稿

ssk
ssk

スコア332

test CHANGED
File without changes
test CHANGED
@@ -221,3 +221,41 @@
221
221
  ];
222
222
 
223
223
  ```
224
+
225
+
226
+
227
+ ######追記
228
+
229
+ アソシエーションした意味がないような気がすうのですが
230
+
231
+ 下記で一旦全て削除してからインサートはできるようになりました。
232
+
233
+
234
+
235
+ ```PHP
236
+
237
+ $i = 0;
238
+
239
+ foreach($dal15s as $key => $value){
240
+
241
+ $this->request->data['dalcheckbox15s'][$i] = [
242
+
243
+ 'datacklists_id' => $id,
244
+
245
+ 'dal15_id' => $value,
246
+
247
+ ];
248
+
249
+ $i++;
250
+
251
+ }
252
+
253
+ $datacklist = $this->Datacklists->patchEntity($datacklist,$this->request->data);
254
+
255
+ ```
256
+
257
+
258
+
259
+ やりたいことは、「CakePHP3で一括更新・新規追加を行う」なので、分かる方は助言いただけると幸いです。
260
+
261
+ よろしくお願いいたします。

3

追記

2017/03/09 10:32

投稿

ssk
ssk

スコア332

test CHANGED
File without changes
test CHANGED
@@ -105,3 +105,119 @@
105
105
 
106
106
 
107
107
  ``'id' => 1,``をテーブルから参照して動的に生成できれば、、、
108
+
109
+
110
+
111
+
112
+
113
+ #####追記
114
+
115
+ ```PHP
116
+
117
+ //debug($datacklist)
118
+
119
+ '[original]' => [
120
+
121
+ 'dalcheckbox15s' => [
122
+
123
+ (int) 0 => object(Cake\ORM\Entity) {
124
+
125
+
126
+
127
+ 'id' => (int) 1,
128
+
129
+ 'datacklists_id' => (int) 22488,
130
+
131
+ 'dal15_id' => (int) 1,
132
+
133
+ '[new]' => false,
134
+
135
+ '[accessible]' => [
136
+
137
+ '*' => true
138
+
139
+ ],
140
+
141
+ '[dirty]' => [],
142
+
143
+ '[original]' => [],
144
+
145
+ '[virtual]' => [],
146
+
147
+ '[errors]' => [],
148
+
149
+ '[invalid]' => [],
150
+
151
+ '[repository]' => 'Dalcheckbox15s'
152
+
153
+
154
+
155
+ },
156
+
157
+ (int) 1 => object(Cake\ORM\Entity) {
158
+
159
+
160
+
161
+ 'id' => (int) 2,
162
+
163
+ 'datacklists_id' => (int) 22488,
164
+
165
+ 'dal15_id' => (int) 2,
166
+
167
+ '[new]' => false,
168
+
169
+ '[accessible]' => [
170
+
171
+ '*' => true
172
+
173
+ ],
174
+
175
+ '[dirty]' => [],
176
+
177
+ '[original]' => [],
178
+
179
+ '[virtual]' => [],
180
+
181
+ '[errors]' => [],
182
+
183
+ '[invalid]' => [],
184
+
185
+ '[repository]' => 'Dalcheckbox15s'
186
+
187
+
188
+
189
+ }
190
+
191
+ ]
192
+
193
+ ],
194
+
195
+ ```
196
+
197
+
198
+
199
+ 'id' => (int) 1,
200
+
201
+ 'id' => (int) 2,
202
+
203
+ この2つの情報を
204
+
205
+
206
+
207
+ ``'id' => 1,``のところに入れてあげればいいかと思うのですが
208
+
209
+ 方法はございますか?
210
+
211
+ ```PHP
212
+
213
+ $this->request->data['dalcheckbox15s'][0] = [
214
+
215
+ 'id' => 1,
216
+
217
+ 'datacklists_id' => $id,
218
+
219
+ 'dal15_id' => $value,
220
+
221
+ ];
222
+
223
+ ```

2

追記

2017/03/09 10:08

投稿

ssk
ssk

スコア332

test CHANGED
File without changes
test CHANGED
@@ -101,3 +101,7 @@
101
101
  }
102
102
 
103
103
  ```
104
+
105
+
106
+
107
+ ``'id' => 1,``をテーブルから参照して動的に生成できれば、、、

1

追記

2017/03/09 09:58

投稿

ssk
ssk

スコア332

test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,27 @@
77
77
  idを渡してあげればいいのでしょうか?
78
78
 
79
79
  その場合、どのようにidを渡すのかも教えていただけると助かります。。
80
+
81
+
82
+
83
+ ######少し前進
84
+
85
+ このように書くとid1が更新されました。
86
+
87
+ ```PHP
88
+
89
+ foreach($this->request->data['dalcheckbox15s'][0] as $key => $value){
90
+
91
+ $this->request->data['dalcheckbox15s'][0] = [
92
+
93
+ 'id' => 1,
94
+
95
+ 'datacklists_id' => $id,
96
+
97
+ 'dal15_id' => $value,
98
+
99
+ ];
100
+
101
+ }
102
+
103
+ ```