質問編集履歴

5

修正

2019/07/11 14:05

投稿

machiren
machiren

スコア17

test CHANGED
@@ -1 +1 @@
1
- laravelでupdateをしたら更新後がNULLになる
1
+ laravelでupdate()をしたら更新後がNULLになる
test CHANGED
File without changes

4

修正

2019/07/11 14:05

投稿

machiren
machiren

スコア17

test CHANGED
@@ -1 +1 @@
1
- laravelで複数レコード、カラムにupdateした
1
+ laravelでupdateしたら更新後がNULLになる
test CHANGED
@@ -12,11 +12,15 @@
12
12
 
13
13
 
14
14
 
15
- ### 発生ている問題・エラーメッセージ
15
+ ※書き換えたコードを添付ました
16
+
16
-
17
+ 現在idを指定してupdateはかけれていますが$update_culumnの$request->input()に
18
+
19
+ NULLが入ってしまいますhtmlのname属性にレコードのidをキーとして持たせてcontroller側でも
20
+
21
+ 同じくキーにidを持たせております。キーを外すと連想配列で全て取得してきてしまいます。
22
+
17
- エラーなどは起きず更新後ホームにリダイレクトれます。
23
+ もう少しのですがなたかご教示くだい...><
18
-
19
- 確認するとDBの情報が更新されていませんでした。
20
24
 
21
25
 
22
26
 
@@ -268,65 +272,191 @@
268
272
 
269
273
  ###変更したコード
270
274
 
275
+ ```html
276
+
277
+ <form action="/admin/update" method="POST" name="update">
278
+
279
+ @method('PUT')
280
+
281
+ @csrf
282
+
283
+ <table id="management" class="table table-bordered ">
284
+
285
+ <tr>
286
+
287
+ <th class='month'>{{$month->month}}</th>
288
+
289
+ <th colspan="3" style="text-align:center">平日</th>
290
+
291
+ <th colspan="2" style="text-align:center">休日</th>
292
+
293
+ <th colspan="6" style="text-align:center">勤怠</th>
294
+
295
+ </tr>
296
+
297
+ <tr>
298
+
299
+ <th>日付</th>
300
+
301
+ <!-- <th>曜日</th> -->
302
+
303
+ <th>始業時刻</th>
304
+
305
+ <th>終業時刻</th>
306
+
307
+ <th>休憩時間</th>
308
+
309
+ <th>休日</th>
310
+
311
+ <th>休日深夜</th>
312
+
313
+ <th>休暇</th>
314
+
315
+ <th>欠勤</th>
316
+
317
+ <th>遅刻</th>
318
+
319
+ <th>早退</th>
320
+
321
+ <th>休出</th>
322
+
323
+ <th>振休</th>
324
+
325
+ </tr>
326
+
327
+ @foreach($edit_list as $edit)
328
+
329
+ <tr>
330
+
331
+ <td>{{$edit->calendar_id}}</td>
332
+
333
+ <td><input class="form-control" type="time" step="900" name="opening_time[]" value="{{$edit->opening_time}}"></td>
334
+
335
+ <td><input class="form-control" type="time" step="900" name="ending_time[]" value="{{$edit->ending_time}}"></td>
336
+
337
+ <td><input class="form-control" type="time" step="900" name="break_time[]" value="{{$edit->break_time}}"></td>
338
+
339
+ <td><input class="form-control" type="time" step="900" name="holiday_time[]" value="{{$edit->holiday_time}}"></td>
340
+
341
+ <td><input class="form-control" type="time" step="900" name="holiday_night[]" value="{{$edit->holiday_night}}"></td>
342
+
343
+ <td>
344
+
345
+ <input type="hidden" name="holiday[{{$edit->id}}]" value="0">
346
+
347
+ <input type="checkbox" name="holiday[{{$edit->id}}]" value="{{($edit->holiday)}}">
348
+
349
+ </td>
350
+
351
+ <td>
352
+
353
+ <input type="hidden" name="adsence[{{$edit->id}}]" value="0">
354
+
355
+ <input type="checkbox" name="adsence[{{$edit->id}}]" value="{{($edit->adsence)}}">
356
+
357
+ </td>
358
+
359
+ <td>
360
+
361
+ <input type="hidden" name="late[{{$edit->id}}]" value="0">
362
+
363
+ <input type="checkbox" name="late[{{$edit->id}}]" value="{{($edit->late)}}">
364
+
365
+ </td>
366
+
367
+ <td>
368
+
369
+ <input type="hidden" name="leave_early[{{$edit->id}}]" value="0">
370
+
371
+ <input type="checkbox" name="leave_early[{{$edit->id}}]" value="{{($edit->leave_early)}}">
372
+
373
+ </td>
374
+
375
+ <td>
376
+
377
+ <input type="hidden" name="holiday_work[{{$edit->id}}]" value="0">
378
+
379
+ <input type="checkbox" name="holiday_work[{{$edit->id}}]" value="{{($edit->holiday_work)}}">
380
+
381
+ </td>
382
+
383
+ <td>
384
+
385
+ <input type="hidden" name="makeup_holiday[{{$edit->id}}]" value="0">
386
+
387
+ <input type="checkbox" name="makeup_holiday[{{$edit->id}}]" value="{{($edit->makeup_holiday)}}">
388
+
389
+ </td>
390
+
391
+ </tr>
392
+
393
+ <input type="hidden" name="id[{{$edit->id}}]" value="{{$edit->id}}">
394
+
395
+ @endforeach
396
+
397
+ </table>
398
+
399
+ <div class="container mt-4 mb-5">
400
+
401
+ <div class="row">
402
+
403
+ <div class="col-3 offset-5">
404
+
405
+ <button type="submit" class="btn btn-lg btn-outline-success">更新</button>
406
+
407
+ ```
408
+
409
+
410
+
411
+ ###変更したコード
412
+
271
413
  ```php
272
414
 
273
415
  public function update(Request $request){
274
416
 
275
417
 
276
418
 
277
- $list = Management::where('month_id',$request->month_id)
278
-
279
- ->whereBetween('calendar_id',[1,31]);
419
+ foreach($request->input('id') as $id){
280
-
281
-
282
-
283
- $management = Management::where('calendar_id');
420
+
284
-
285
-
286
-
287
- foreach($management as $managements){
421
+
288
-
289
-
290
-
422
+
291
- $list->update([
423
+ $update_culumn = [
292
-
293
-
294
-
424
+
425
+
426
+
295
- 'opening_time' => $request->input('opening_time[$managements]'),
427
+ 'opening_time' => $request->input('opening_time[$id]'),
296
-
428
+
297
- 'ending_time' => $request->input('ending_time[$managements]'),
429
+ 'ending_time' => $request->input('ending_time[$id]'),
298
-
430
+
299
- 'break_time' => $request->input('break_time[$managements]'),
431
+ 'break_time' => $request->input('break_time[$id]'),
300
-
301
- 'total_time' => $request->input('total_time[$managements]'),
432
+
302
-
303
- 'over_time' => $request->input('over_time[$managements]'),
304
-
305
- 'night_time' => $request->input('night_time[$managements]'),
306
-
307
- 'holiday_time' => $request->input('holiday_time[$managements]'),
433
+ 'holiday_time' => $request->input('holiday_time[$id]'),
308
-
434
+
309
- 'holiday_night' => $request->input('holiday_night[$managements]'),
435
+ 'holiday_night' => $request->input('holiday_night[$id]'),
310
-
436
+
311
- 'holiday' => $request->input('holiday[$managements]'),
437
+ 'holiday' => $request->input('holiday[$id]'),
312
-
438
+
313
- 'adsence' => $request->input('adsence[$managements]'),
439
+ 'adsence' => $request->input('adsence[$id]'),
314
-
440
+
315
- 'late' => $request->input('late[$managements]'),
441
+ 'late' => $request->input('late[$id]'),
316
-
442
+
317
- 'leave_early' => $request->input('leave_early[$managements]'),
443
+ 'leave_early' => $request->input('leave_early[$id]'),
318
-
444
+
319
- 'holiday_work' => $request->input('holiday_work[$managements]'),
445
+ 'holiday_work' => $request->input('holiday_work[$id]'),
320
-
446
+
321
- 'makeup_holiday' => $request->input('makeup_holiday[$managements]')]);
447
+ 'makeup_holiday' => $request->input('makeup_holiday[$id]')];dd($update_culumn);
448
+
449
+
450
+
322
-
451
+ Management::where('id',$id)->update($update_culumn);
323
-
324
-
452
+
453
+
454
+
325
- }
455
+ }
326
-
456
+
327
- return redirect('/');
457
+ return redirect('/');
328
-
458
+
329
- }
459
+ }
330
460
 
331
461
  ```
332
462
 

3

修正

2019/07/11 14:03

投稿

machiren
machiren

スコア17

test CHANGED
File without changes
test CHANGED
@@ -266,6 +266,70 @@
266
266
 
267
267
  ```
268
268
 
269
+ ###変更したコード
270
+
271
+ ```php
272
+
273
+ public function update(Request $request){
274
+
275
+
276
+
277
+ $list = Management::where('month_id',$request->month_id)
278
+
279
+ ->whereBetween('calendar_id',[1,31]);
280
+
281
+
282
+
283
+ $management = Management::where('calendar_id');
284
+
285
+
286
+
287
+ foreach($management as $managements){
288
+
289
+
290
+
291
+ $list->update([
292
+
293
+
294
+
295
+ 'opening_time' => $request->input('opening_time[$managements]'),
296
+
297
+ 'ending_time' => $request->input('ending_time[$managements]'),
298
+
299
+ 'break_time' => $request->input('break_time[$managements]'),
300
+
301
+ 'total_time' => $request->input('total_time[$managements]'),
302
+
303
+ 'over_time' => $request->input('over_time[$managements]'),
304
+
305
+ 'night_time' => $request->input('night_time[$managements]'),
306
+
307
+ 'holiday_time' => $request->input('holiday_time[$managements]'),
308
+
309
+ 'holiday_night' => $request->input('holiday_night[$managements]'),
310
+
311
+ 'holiday' => $request->input('holiday[$managements]'),
312
+
313
+ 'adsence' => $request->input('adsence[$managements]'),
314
+
315
+ 'late' => $request->input('late[$managements]'),
316
+
317
+ 'leave_early' => $request->input('leave_early[$managements]'),
318
+
319
+ 'holiday_work' => $request->input('holiday_work[$managements]'),
320
+
321
+ 'makeup_holiday' => $request->input('makeup_holiday[$managements]')]);
322
+
323
+
324
+
325
+ }
326
+
327
+ return redirect('/');
328
+
329
+ }
330
+
331
+ ```
332
+
269
333
  ### 補足情報(FW/ツールのバージョンなど)
270
334
 
271
335
  php 7.3 laravel 5.8.

2

修正

2019/07/02 08:41

投稿

machiren
machiren

スコア17

test CHANGED
File without changes
test CHANGED
@@ -254,11 +254,13 @@
254
254
 
255
255
  'holiday_work' => $request->input('holiday_work')[$key],
256
256
 
257
- 'makeup_holiday' => $request->input('makeup_holiday')[$key]]);}
257
+ 'makeup_holiday' => $request->input('makeup_holiday')[$key]]);
258
+
259
+       
260
+
258
-
261
+      }
259
-
260
-
262
+
261
- return redirect('/');
263
+ return redirect('/');
262
264
 
263
265
  }
264
266
 

1

修正

2019/07/02 05:56

投稿

machiren
machiren

スコア17

test CHANGED
@@ -1 +1 @@
1
- laravelで複数にupdateがしたい
1
+ laravelで複数レコード、カラムにupdateがしたい
test CHANGED
File without changes