目次
ルーティングを設定
下記のように一行を追記します。
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TodoController;
// Route::get('/', function () {
// return view('welcome');
// });
Route::get('todo/index', [TodoController::class, 'index'])->name('todo.index');
Route::get('todo/create', [TodoController::class, 'create'])->name('todo.create');
Route::post('todo/store', [TodoController::class, 'store'])->name('todo.store');
Route::get('todo/show/{id}', [TodoController::class, 'show'])->name('todo.show');
Route::get('todo/edit/{id}', [TodoController::class, 'edit'])->name('todo.edit');
Route::post('todo/update/{id}', [TodoController::class, 'update'])->name('todo.update'); //追記
コントローラを設定
public function update(Request $request, $id)
{
$todo = Todo::find($id);
$todo->content = $request->input('content');
$todo->done = $request->input('done');
$todo->save();
return redirect('todo/index');
}
編集画面とリンクさせる
actionに下記のように追記する。
<div class="container-sm">
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
<h1>editです</h1>
<form method="POST" action="{{ route('todo.update', ['id' => $todo->id] ) }}"> //formの送信先を追記
@csrf
ID:{{ $todo->id }} <br>
内容:<input type="text" name="content" value="{{ $todo->content }}"> <br>
対応したかどうか:<input type="text" name="done" value="{{ $todo->done }}"> <br>
作成日時:{{ $todo->created_at }} <br>
更新日時:{{ $todo->udpated_at }} <br>
<input type="submit" value="更新する" class="btn btn-info">
</form>
</div>
これで、無事に更新作業ができていれば成功です。
ここまでで無事に簡易的なCRUDシステムが完成しました!
お疲れ様でした!