MENU

⑨ Laravelで簡単なCRUDシステムを作る(Update…データを更新する)

目次

ルーティングを設定

下記のように一行を追記します。

<?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システムが完成しました!

お疲れ様でした!

独学に限界を感じたら、プログラミング教室がお勧めです。
エージェントは複数登録することをお勧めします。カウンセリングを通して、業界について勉強することができます。
フリーランス転職希望の方はフリーランス専門のエージェントを利用しましょう。
独学に限界を感じたら、プログラミング教室がお勧めです。
エージェントは複数登録することをお勧めします。
カウンセリングを通して、業界について勉強することができます。
フリーランス転職希望の方はフリーランス専門のエージェントを利用しましょう
よかったらシェアしてね!
  • URLをコピーしました!
目次