6_Laravel10_投稿機能_POST

ルーティングPOST追加
routes/web.php

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\MessageController;

Route::get('/', function () {
return view('welcome');
});

Route::get('messages', [MessageController::class,'index']);
Route::post('messages', [MessageController::class,'store']);

ビュー投稿フォーム作成
resources/views/message/index.blade.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Message Sample</title>
</head>
<body>
<main>
<h1>メッセージ</h1>
<form action="/messages" method="POST">
@csrf
<input type="text" name="body">
<input type="submit" value="投稿">
</form>
<hr>
<ul>
@foreach ($messages as $message)
<li>{{ $message->body }}</li>
@endforeach
</ul>
</main>
</body>
</html>

storeメソッド追加
app/Http/Controllers/MessageController.php

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
use App\Models\Message;

class MessageController extends Controller
{
public function index():View
{
// メッセージテーブルのレコードを全件取得
$messages = Message::all();
// messagesというキーで、ビューへ渡す
return view('message/index',['messages'=>$messages]);
}
public function store(Request $request): RedirectResponse
{
//リクエストからボディを取得し、保存
$message = new Message();
$message->body = $request->body;
$message->save();

// 処理後、リダイレクト
return redirect('/messages');

}
}

Author: gaa

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です