外出先の編集画面を作成します。
編集画面の表示
詳細画面に編集画面へ遷移するformを作ります。
<form action="/MemoryMap/public/henshuGamen" method="POST">
{{ csrf_field() }}
<input type="text" value={{ $data[0]['id'] }} name="id" class="hidden" />
<input type="submit" value="編集" class="btn">
</form>
MemoryMap/resources/views/web.php
Route::post('/henshuGamen', 'MemoryMapController@henshuGamen');
MemoryMap/app/Http/Controllers/MemoryMapController.php
// 編集画面を返却する
public function henshuGamen(Request $request){
// id値を取得
$id = $request->input('id');
// idを条件にTBLのレコードを取得
$data = gaishutsu_kiroku::where('id', $id)->get();
// パラメータをセットして編集画面のviewを表示
return view('henshuGamen',['data' => $data]);
}
MemoryMap/resources/views/henshuGamen.blade.php
<!DOCTYPE HTML>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>思い出MAP</TITLE>
<link rel="stylesheet" type="text/css" href="css/insertInfo.css" media="all">
</HEAD>
<BODY>
<header>
<p class="head_title">思い出<span>MAP</span></p>
</header>
<div class="container">
<div class="inline">
<form action="/MemoryMap/public/updateInfo" method="POST">
{{ csrf_field() }}
<h3>{{ $data[0]['place_name'] }}</h3>
<input id="id" class="hidden" value={{ $data[0]['id'] }} name="id" /><br>
<p class="label">コメント</p>
<input id="com" class="in" value={{ $data[0]['place_comment'] }} name="com" /><br>
<p class="label">出かけた日</p>
<input type="date" id="date" class="in" value={{ $data[0]['place_date'] }}
name="date" /><br>
<p class="label">写真</p>
<input type="file" name="file" id="file" class="in" /><br>
<input type="submit" value="修正" class="btn">
</form>
<!-- 戻るボタンの設定 -->
<script>
var url = "/MemoryMap/public/shosaiGamen/" + {{ $data[0]['id'] }}
document.write("<a href =" + url + ">戻る</a>")
</script>
</div>
</div>
</BODY>
</HTML>
編集ボタンを押下します。
編集画面に遷移します。
コメントと日付の編集を可能にしています。
編集画面の form action に updateInfo のURLを設定します。
<form action="/MemoryMap/public/updateInfo" method="POST">
MemoryMap/resources/views/web.php
Route::post('/updateInfo', 'MemoryMapController@updateInfo');
MemoryMap/app/Http/Controllers/MemoryMapController.php
// 編集画面の入力値をDBに登録する
public function updateInfo(Request $request){
$id = $request->input('id');
$com = $request->input('com');
$date = $request->input('date');
//インスタンス化
$gaishutsu_kiroku = new gaishutsu_kiroku();
// データベースの値をupdate
$data = gaishutsu_kiroku::where('id', $id)->update(['place_date' => $date,'place_comment' => $com]);
// 一覧画面へリダイレクト
return redirect('/ichiranGamen')->with('message', '修正しました');
}
->update でDBのアップデートをすることが出来ます。引数でカラムと更新値を指定します。
$data = gaishutsu_kiroku::where('id', $id)->update(['place_date' => $date,'place_comment' => $com]);
アップデート後に一覧画面にリダイレクトさせるので return redirect を指定します。
return redirect('/ichiranGamen')
リダイレクト先の画面にメッセージを渡します。
->with('message', '修正しました');
一覧画面にメッセージを表示するロジックを追記します。
メッセージというセッションがあればタグを表示します。
@if (Session::has('message'))
<p class="message">{{ session('message') }}</p>
@endif
修正をすると一覧画面にメッセージが表示されます。
以上で終了です。