前提・実現したいこと
Laravel6.0で旅行投稿サイトを制作しています。
編集画面から情報を更新しようとしてもうまく、更新が出来ておらず、またvalidationも機能していない状況です。その際、edit.blade.phpから編集したら一度確認画面(contentconfirm.blade.php)に飛ぶようにしているのですが、show.blade.phpに飛んでしまいます。
まずはどのようにして、問題を解決していくべきでしょうか?
ご教授いただけますと幸いです。
該当のソースコード
Content.Controller
1public function edit($id) 2 { 3 $content = Content::findOrFail($id); 4 return view('content.edit',[ 5 'message' => '編集フォーム', 6 'content' => $content 7 ]); 8 } 9 10 11 public function update(ContentRequest $request) 12 { 13 14 if($request->validated()){ 15 $content = Content::find($request->id); 16 17 $filename = $request->file('picture')->store('public/picture'); 18 $content->picture = basename($filename); 19 20 $content->user_id = $request->user_id; 21 $content->content = $request->content; 22 $content->title = $request->title; 23 $content->span = $request->span; 24 $content->continent = $request->continent; 25 $content->country = $request-> country; 26 $content->costs = $request->costs; 27 28 $content->save(); 29 30 } 31 32 return view('content.editconfirm' , [ 33 'content'=>$content, 34 'message'=>'確認画面' 35 ]); 36 37 }
editbladephp
1@extends('layouts.app') 2@section('content') 3<div class="card"> 4 <div class="card-title" style="text-center"> 5 <h2 style="font-family:serif; background-color:#E6E6E6; text-shadow:2px 2px 1px #B4B4B4 ;">{{$message}}</h2> 6 </div> 7 @if ($errors->any()) 8 <div class="alert alert-danger"> 9 <ul> 10 @foreach ($errors->all() as $error) 11 <li>{{ $error}}</li> 12 @endforeach 13 </ul> 14 </div> 15 @endif 16 <div class="card-body"> 17 <form action="{{ route("content.update" , $content->id ) }}" method="put" enctype="multipart/form-data"> 18 @csrf 19 {{ method_field('patch') }} 20 <div class="form-group"> 21 <label for="exampleFormControlInput1">タイトル</label> 22 <input type="text" class="form-control" id="exampleFormControlInput1" placeholder="input your title" name="title" value='{{old('title' , $content->title )}}'> 23 </div> 24 <div class="form-group"> 25 <label for="exampleFormControlSelect1">大陸名</label> 26 <select class="form-control" id="exampleFormControlSelect1" name="continent" value='{{old('continent' , $content->continent)}}'> 27 <option>アジア</option> 28 <option>北アメリカ</option> 29 <option>中南米</option> 30 <option>ヨーロッパ</option> 31 <option>アフリカ</option> 32 <option>オセアニア</option> 33 </select> 34 </div> 35 <div class="form-group"> 36 <label for="exampleFormControlInput1">国名</label> 37 <input type="text" class="form-control" id="exampleFormControlInput1" placeholder="日本" name="country" value='{{old('country' , $content->country)}}'> 38 </div> 39 <div class="form-group"> 40 <label for="exampleFormControlSelect1">滞在期間</label> 41 <select class="form-control" id="exampleFormControlSelect1" name="span" placeholder="滞在期間を選択" value='{{old('span' , $content->span)}}'> 42 <option value=''>選択してください</option> 43 <option>1</option> 44 <option>2</option> 45 <option>3</option> 46 <option>4</option> 47 <option>5</option> 48 <option>6</option> 49 <option>7</option> 50 <option>8</option> 51 <option>9</option> 52 <option>10</option> 53 <option>11</option> 54 <option>12</option> 55 <option>13</option> 56 <option>14</option> 57 <option>15</option> 58 <option>16</option> 59 <option>17</option> 60 </select> 61 </div> 62 <div class="form-group"> 63 <label for="exampleFormControlSelect1">費用</label> 64 <select class="form-control" id="exampleFormControlSelect1" name="costs" placeholder="金額を選択" value='{{old('costs' , $content->costs)}}'> 65 <option value=''>選択してください</option> 66 <option>10000</option> 67 <option>30000</option> 68 <option>50000</option> 69 <option>70000</option> 70 <option>100000</option> 71 <option>150000</option> 72 <option>200000</option> 73 <option>250000</option> 74 <option>300000</option> 75 </select> 76 </div> 77 <div class="form-group"> 78 <label for="exampleFormControlFile1">写真</label> 79 <input type="file" class="form-control-file" id="exampleFormControlFile1" name="picture" value='{{old('picture' , $content->picture)}}'> 80 </div> 81 <div class="form-group"> 82 <label for="exampleFormControlTextarea1">コンテンツ</label> 83 <textarea class="form-control" id="exampleFormControlTextarea1" rows="5" name="content" >{{old('content' , $content->content)}}</textarea> 84 </div> 85 <input type="hidden" name="user_id" value="{{Auth::id()}}"> 86 <button type="submit" class="btn btn-success btn-lg btn-block">更新</button> 87 {{ link_to_route('index' , '戻る' , null , ['class'=>'btn btn-info btn-lg btn-block']) }} 88 </form> 89 </div> 90</div> 91@endsection
contentconfirmbladephp
1@extends('layouts.app') 2@section('content') 3<div class="row"> 4 <div class="card-title"><h2>{{ $message }}</h2></div> 5 <div class="card col-md-10" style="width: 40rem;"> 6 <img src="{{asset('storage/picture/'. $content->picture) }}" class="rounded float-left" width="100%" height="200"> 7 <div class="card-body"> 8 <h5 class="card-title">{{ $content->title }}</h5> 9 <p class="card-text">{{ $content->content }}</p> 10 </div> 11 <ul class="list-group list-group-flush"> 12 <li class="list-group-item">大陸名:{{ $content->continent}}</li> 13 <li class="list-group-item">国名:{{ $content->country }}</li> 14 <li class="list-group-item">費用:¥{{ $content->costs }}</li> 15 <li class="list-group-item">滞在期間:{{ $content->span }}日間</li> 16 <li class="list-group-item"> 17 {!! link_to_route('index', '戻る', $content->id, ['class' => 'btn btn-info']) !!} 18 </li> 19 </ul> 20 </div> 21</div> 22@endsection
ContentModel
1<?php 2 3namespace App; 4 5use Illuminate\Database\Eloquent\Model; 6 7class Content extends Model 8{ 9 protected $fillable = ['user_id' ,'content' , 'title' , 'picture' , 'span' , 'costs' , 'continent' , 'country']; 10 11 protected $table = 'contents'; 12 13 public function user() 14 { 15 return $this->belongsTo(User::class); 16 } 17} 18
Route::get('/' , 'ContentController@index')->name('index'); Route::get('signup', 'Auth\RegisterController@showRegistrationForm')->name('signup.get'); Route::post('signup', 'Auth\RegisterController@register')->name('signup.post'); Route::get('login' , 'Auth\LoginController@showLoginForm')->name('login'); Route::post('login' , 'Auth\LoginController@login')->name('login.post'); Route::get('logout' , 'Auth\LoginController@logout')->name('logout.get'); Route::get('search' , 'SearchController@index')->name('search'); Route::group(['middleware' => ['auth']], function(){ Route::resource('/content' , 'ContentController' , ['except'=>['index' ]]); Route::resource('users', 'UsersController', ['only' => ['index', 'show']]); });
試したこと
・{{ method_field('patch') }}の追加
・モデルの確認
補足情報(FW/ツールのバージョンなど)
Laravel6.0を利用しております。
回答1件
あなたの回答
tips
プレビュー