MENU

⑥ Laravelで簡単なCRUDシステムを作る(Store…入力されたデータを保存する)

目次

ルーティングを設定

下記のようにルーティングに一行追記してください。

今回はデータを取得するだけでなく保存するので、メソッドはpostにしてください。

<?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'); //追記

コンロローラを設定

コントローラのstoreのところに、下記一行を追記しましょう。

    public function store(Request $request)
    {
      $content = $request->input('content'); //追記
    }

フォームの送信先を指定

create.blade.phpで作成したフォームの送信先として、actionに下記のように追記しましょう。

<div class="container-sm">
  <link href="{{ asset('css/app.css') }}" rel="stylesheet">
  <h1>createです</h1>
  
  <form action="POST" action="{{ route('todo.store') }}">  //action内を追記
  @csrf
  todoの内容:<input type="text" name="content">
  <input type="submit" class="btn btn-info" value="登録する">
  </form>

</div>

コントローラを編集する

コントローラファイルに下記のように追記します。(既に追記されてる内容はしなくてOKです。)

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Todo;  //モデルと接続 
use Illuminate\Support\Facades\DB;  

class TodoController extends Controller
{
    public function index()
    {
      $todos = DB::table('todos')
      ->select('id','content','done')
      ->get();

      return view('todo.index', compact('todos'));  
    }

    public function create()
    {
      return view('todo.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
      $todo = new Todo; //追記
        $todo->content = $request->input('content');  //追記
        $todo->done = '0';  //追記

      $todo->save();  //追記
      return redirect('todo/index');  //追記
    }

//show以下は省きます

動作確認

動作確認をしてみて、無事にデータが保存されたら完了!

対応済みのところは、後でチェックボックスにするので一旦これでOKとします。

お疲れ様でした!

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