Laravel 学習 part. 3
Blade
入力フォーム
Blade を利用して入力フォームを記述します。
index.blade.php
<html> <head> <title>Hello/Index</title> <style> body { font-size: 16pt; color: #999; } h1 { font-size: 50pt; text-align: right; color: #f6f6f6; margin: -20px 0px -30px -px; letter-spacing: -4pt; } </style> </head> <body> <h1>Blade/Index</h1> <p>{{$msg}}</p> <form method="POST" action="/hello"> {{ csrf_field() }} <input type="text" name="msg"> <input type="submit"> </form> </body> </html>
HelloController.php
コントローラで POSTのアクションを記述します。
<?php public function post(Request $request) { $msg = $request->msg; $data = [ 'msg' => 'こんにちは、' . $msg . 'さん。', ]; return view('hello.index', $data); }
web.php
POST を利用するためにルート設定を追加します。
<?php Route::post('hello', 'HelloController@post');
Bladeの構文
変数
先ほどの Blade テンプレートで値を展開しているように、値や関数を {{変数}} という形で利用できます。
@ifディレクティブ
プログラミング言語の構文を利用することができます。
index.blade.php
<html> <head> <title>Hello/Index</title> <style> body { font-size: 16pt; color: #999; } h1 { font-size: 50pt; text-align: right; color: #f6f6f6; margin: -20px 0px -30px -px; letter-spacing: -4pt; } </style> </head> <body> <h1>Blade/Index</h1> @if ($msg != '') <p>こんにちは、{{$msg}}さん。</p> @else <p>何か書いてください。</p> @endif <form method="POST" action="/hello"> {{ csrf_field() }} <input type="text" name="msg"> <input type="submit"> </form> </body> </html>
@for
test1.php
<html> <head> <title>Test1</title> </head> <body> <h1>for文</h1> @for ($i = 0; $i < 5; $i++) <p>{{ $i }}</p> @endfor </body> </html>