🐘
Laravel入門2 bladeディレクティブ
記事一覧
- Laravel × Docker 最速環境構築
- Laravel 入門1 ページ追加
- Laravel入門2 bladeディレクティブ
- Laravel入門3 静的ファイル
- Laravel入門4 Request
- Laravel入門5 Todoアプリ(データベース)
- Laravel入門6 Todoアプリ(認証機能)
- Laravel入門7 Todoアプリ(CRUD)
bladeディレクティブ
bladeディレクティブとは
laravelではControllerからviewに対して、PHP変数を渡すことができます
渡された変数を使ってbladeファイル内では、if文やfor文などを使用できます
↪︎ この構文をbladeディレクティブ
という
viewでPHP変数を使う準備
-
TopController.php
からviewにage, skillsを渡す。
(今回は年齢[age]と特技[skills]を渡すようにする)
- TopController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TopController extends Controller
{
function index() {
$age = 18; // ageを定義
$skills = [
["name" => "Python", "years" => "2年"],
["name" => "PHP", "years" => "1年"],
["name" => "JavaScript", "years" => "0.5年"],
];
// viewの第2引数には連想配列を指定することでviewに変数を渡すことができる
return view("top.index", compact("age", "skills"));
// compact関数を使用しているが、以下と意味は同じ
// return view("top.index", [
// "age" => $age,
// "skills" => $skills
// ]);
}
}
表示
- top/index.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>トップページ</h1>
{{-- 中括弧2つで囲むことによって変数を表示可能 --}}
<p>{{$age}}</p>
<p>{{$skills[0]["name"]}}</p>
</body>
</html>
条件分岐
- top/index.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>トップページ</h1>
@if ($age >= 20)
<p>お酒が飲めます</p>
@elseif ($age >= 18)
<p>免許が取れます</p>
@else
<p>未成年です</p>
@endif
</body>
</html>
ループ
- top/index.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>トップページ</h1>
<table>
<tr>
<td>名前</td>
<td>経験年数</td>
</tr>
@foreach ($skills as $skill)
<tr>
<td>{{ $skill["name"] }}</td>
<td>{{ $skill["years"] }}</td>
</tr>
@endforeach
</table>
@for ($i = 0; $i < 5; $i++)
<p>{{ $i }}</p>
@endfor
</body>
</html>
Discussion