Laravel投稿機能の作成②

①PostControllerのcreateアクションを変更する

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Post;

class PostController extends Controller
{
    /*いろいろ省略*/

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

    /*いろいろ省略*/    

    public function destroy($id)
    {
        //
    }
}

②投稿作成画面(resources/views/posts/create.blade.php)を作成する

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
        @if(Session::has('message'))
                <div class="alert alert-success">
                    {{Session::get('message')}}
                </div>
            @endif
            <form action="{{ route('post.store') }}" method="post">
                @csrf
                <div class="card">
                    <div class="card-header">投稿作成</div>
                    <div class="card-body">
                        <div class="form-group">
                            <label for="name">タイトル</label>
                            <input type="text" name="title" class="form-control">
                        </div>
                        <div class="form-group">
                            <label for="name">内容</label>
                            <input type="text" name="content" class="form-control">
                        </div>
                        <div class="form-group">
                            <button class="btn btn-primary">Submit</button>
                        </div>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
@endsection

③PostControllerのstoreアクションに保存処理を追加

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Post;

class PostController extends Controller
{
    /*いろいろ省略*/

    public function store(Request $request)
    {
        // バリデーション
        $this->validate($request,[
            'title' => 'required',
            'content' => 'required',
        ]);

        Category::create([
            'title' => $request->title,
            'content' => $request->content,
        ]);

        return redirect()->back()->with('message', '投稿が完了しました!');
    }

}

この記事が気に入ったらサポートをしてみませんか?