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', '投稿が完了しました!');
}
}
この記事が気に入ったらサポートをしてみませんか?