ルーティング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');
}
}