laravelを使用しています。
複数選択したcheckboxのデータ(value)全てをテーブルカラムに全て保存したいと考えていますが、
現状のコードでは
Data truncated for column ‘health’ at row 1 (SQL: insert into
icons
(icon_day
,health
,user_id
,updated_at
,created_at
) values (2019-06-02, 1,2,3,4, 1, 2019-06-03 00:08:05, 2019-06-03 00:08:05))
といったようなエラーが出てしまいます。
解決策を教えていただきたいです。
●index.blade.php
php
1@extends('layouts.app') 2@section('title', '体調管理') 3@section('content') 4<h3>体調管理アプリ</h3> 5 {!!$cal_tag!!} 6 <a href="#modal01" class="modalOpen"> 7 <button class="btn btn-primary">予定の登録</button> 8 </a> 9 <!--予定登録モーダル--> 10 <div class="modal" id="modal01"> 11 <div class="overLay modalClose"></div> 12 <div class="inner"> 13 <h3>予定登録</h3> 14 <form method="POST" action="memo" autocomplete="off"> 15 <div class="form-group"> 16 {{csrf_field()}} <label for="memo_day">日付</label> 17 <input type="text" name="memo_day" class="form-control datepicker-form" id="memo_day"> 18 <label for="memo">説明</label> 19 <input type="text" name="memo" class="form-control" id="memo"> 20 </div> 21 <button type="submit" class="btn btn-primary">登録</button> 22 </form> 23 <a href="" class="modalClose">Close</a> 24 </div> 25 </div> 26 <a href="#modal02" class="modalOpen"> 27 <button class="btn btn-primary">体調の登録</button> 28 </a> 29 <!--体調管理モーダル--> 30 <div class="modal" id="modal02"> 31 <div class="overLay modalClose"></div> 32 <div class="inner"> 33 <h3>体調登録</h3> 34 <form method="POST" action="icon_save" autocomplete="off"> 35 <div class="form-group"> 36 {{csrf_field()}} <label for="icon_day">日付</label> 37 <input type="text" name="icon_day" class="form-control datepicker-form" id="icon_day"> 38 <label for="health">説明</label> 39 <input type="checkbox" name="health[]" class="form-control" id="health" value="1">健康 40 <input type="checkbox" name="health[]" class="form-control" id="health" value="2">食欲不振 41 <input type="checkbox" name="health[]" class="form-control" id="health" value="3">めまい 42 <input type="checkbox" name="health[]" class="form-control" id="health" value="4">低血圧 43 <input type="checkbox" name="health[]" class="form-control" id="health" value="5">風邪 44 </div> 45 <button type="submit" class="btn btn-primary">登録</button> 46 </form> 47 <a href="" class="modalClose">Close</a> 48 </div> 49 </div> 50 @if($errors->any()) 51<p>入力にミスがあります。</p> 52 <div class="error"> 53 <ul> 54 @foreach($errors->all() as $message) 55 <li class="error">{{ $message }}</li> 56 @endforeach 57 </ul> 58 </div> 59@endif 60 @endsection
●CalendarController.php
php
1<?php 2 namespace App\Http\Controllers; 3 use Illuminate\Http\Request; 4use App\Calendar; 5use App\Memo; 6use App\Icon; 7use Illuminate\Support\Facades\Storage; 8use Illuminate\Support\Facades\Auth; 9use Illuminate\Support\Facades\Log; 10use App\Http\Requests\MemoRequest; 11 class CalendarController extends Controller 12{ 13 // Auth機能 14 public function __construct() 15 { 16 $this->middleware('auth'); 17 } 18 // indexでカレンダーデータ機能取得 19 public function index(Request $request) 20 { 21 $memoList = Memo::all(); 22 $iconList = Icon::all(); 23 $cal = new Calendar($memoList,$iconList); 24 $tag = $cal->showCalendarTag($request->month,$request->year); 25 return view('index', ['cal_tag' => $tag]); 26 } 27 // memosのid取得 28 public function getMemoId($id) 29 { 30 $data = new Memo(); 31 if (isset($id)) { 32 $data = Memo::where('id', '=', $id)->first(); 33 } 34 $list = Memo::all(); 35 return view('memo', compact('list', 'data', 'cal_tag')); 36 } 37 // memoの登録・更新 38 public function postMemo(MemoRequest $request) 39 { 40 // POSTで受信したメモデータの登録 41 if(isset($request->id)) { 42 $memo_val = Memo::where('id', '=', $request->id)->first(); 43 $memo_val->memo_day = $request->memo_day; 44 $memo_val->memo = $request->memo; 45 $memo_val->user_id = Auth::user()->id; 46 $memo_val->save(); 47 } else { 48 $memo_val = new Memo(); 49 $memo_val->memo_day = $request->memo_day; 50 $memo_val->memo = $request->memo; 51 $memo_val->user_id = Auth::user()->id; 52 $memo_val->save(); 53 } 54 $data = new Memo(); 55 $list = Memo::all(); 56 $memoList = Memo::all(); 57 $iconList = Icon::all(); 58 $cal = new Calendar($memoList,$iconList); 59 $tag = $cal->showCalendarTag($request->month,$request->year); 60 return redirect('/')->with(['list' =>$list, 'data' => $data, 'cal_tag' => $tag]); 61 } 62 public function deleteMemo(Request $request) 63 { 64 // DELETEで受信した休日データの削除 65 if (isset($request->id)) { 66 $memo = Memo::where('id', '=', $request->id)->first(); 67 $memo->delete(); 68 } 69 // メモデータ取得 70 $data = new Memo(); 71 $list = Memo::all(); 72 $memoList = Memo::all(); 73 $iconList = Icon::all(); 74 $cal = new Calendar($memoList,$iconList); 75 $tag = $cal->showCalendarTag($request->month,$request->year); 76 // return view('index', ['list' =>$list, 'data' => $data, 'cal_tag' => $tag]); 77 return redirect('/')->with(['list' =>$list, 'data' => $data, 'cal_tag' => $tag]); 78 } 79 // iconの登録・更新 80 public function postIcon(Request $request) 81 { 82 // POSTで受信したiconデータの登録 83 if(isset($request->id)) { 84 $icon_val = Icon::where('id', '=', $request->id)->first(); 85 $icon_val->icon_day = $request->icon_day; 86 $icon_val->health = $request->health; 87 $icon_val->user_id = Auth::user()->id; 88 $icon_val->save(); 89 } else { 90 $icon_val = new Icon(); 91 $icon_val->icon_day = $request->icon_day; 92 $icon_val->health = implode(",", $request->health); 93 $icon_val->user_id = Auth::user()->id; 94 $icon_val->save(); 95 } 96 $data = new Icon(); 97 $list = Icon::all(); 98 $memoList = Memo::all(); 99 $iconList = Icon::all(); 100 $cal = new Calendar($memoList,$iconList); 101 $tag = $cal->showCalendarTag($request->month,$request->year); 102 return redirect('/')->with(['list' =>$list, 'data' => $data, 'cal_tag' => $tag]); 103 } 104}
●2019_05_27_235441_create_icons_table.php
php
1<?php 2 use Illuminate\Support\Facades\Schema; 3use Illuminate\Database\Schema\Blueprint; 4use Illuminate\Database\Migrations\Migration; 5 class CreateIconsTable extends Migration 6{ 7 /** 8 * Run the migrations. 9 * 10 * @return void 11 */ 12 public function up() 13 { 14 Schema::create('icons', function (Blueprint $table) { 15 $table->increments('id'); 16 $table->datetime('icon_day'); 17 $table->integer('health'); 18 $table->integer('user_id')->unsigned(); 19 $table->timestamps(); 20 $table 21 ->foreign('user_id') 22 ->references('id') 23 ->on('users') 24 ->onDelete('cascade'); 25 }); 26 } 27 /** 28 * Reverse the migrations. 29 * 30 * @return void 31 */ 32 public function down() 33 { 34 Schema::dropIfExists('icons'); 35 } 36}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/03 00:37
2019/06/03 01:14