はじめに
Laravel を使ったフォーム処理の基本を学ぶため、名前を入力して表示する機能を実装してみました。
これは PHP のキャッチアップを目的とした個人的な学習メモです。初学者による備忘録となります。
書こうと思ったきっかけ
個人的に PHP をキャッチアップしたく、Laravel を使って簡単なフォーム処理を作ってみたいと考えました。
個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。
特に Blade テンプレートや POST 処理の流れを理解することが目標です。
内容
目標
-
/hello
にアクセスすると名前を入力するフォームが表示される - 名前を入力して送信すると、"こんにちは、〇〇さん!" と表示される
フォーム表示用の Blade を作成
src/resources/views/hello.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Helloページ</title>
</head>
<body>
<h1>名前を入力してください</h1>
<form action="/hello" method="POST">
@csrf
<input type="text" name="name" placeholder="お名前">
<button type="submit">送信</button>
</form>
@isset($name)
<p>こんにちは、{{ $name }}さん!</p>
@endisset
</body>
</html>
@csrf
は Laravel におけるセキュリティ対策。
@isset($name)
で、送信された後だけ挨拶を表示します。
ルーティング設定(GET + POST)
src/routes/web.php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HelloController;
Route::get('/hello', [HelloController::class, 'index']);
Route::post('/hello', [HelloController::class, 'post']);
HelloController を編集
src/app/Http/Controllers/HelloController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HelloController extends Controller
{
public function index()
{
return view('hello');
}
public function post(Request $request)
{
$name = $request->input('name');
return view('hello', ['name' => $name]);
}
}
キャッシュクリア(任意)
make cache-clear
動作確認
-
http://localhost:8080/hello
にアクセス - 名前を入力して送信
-
こんにちは、〇〇さん!
と表示される
表示結果:
実際のログ
まとめ
Laravel の基本であるルーティング、Blade テンプレート、フォームの POST 処理、そしてコントローラの役割が一連の流れで理解できました。
次はフォームのバリデーションや、データベースへの保存にもチャレンジしてみたいです...!