Laravel5.5の備忘録として残しておく。
今回はビューの作成について。
※拙い言葉で恐縮です。
※なんか解釈に間違いがあったり、表現が曖昧だったりするかもしれません。
予めご容赦くださいませ。
controllerとViewファイルについてメモ。
controller名はなんでもいいけど、一旦 ItemController.php としておく。
controllerはartisanコマンドを使って作成する。
php artisan make:controller ItemController
とすれば作成される。
作成される場所は /app/Http/Controllers 配下
作成時は以下の状態なので、ビューファイルに渡すための処理を記述する
<?php
namespace App\Http\Controllers;
use App\Item;
use Illuminate\Http\Request;
class ItemController extends Controller
{
}
まずはビューファイルのindex.phpに情報を渡すための処理を記述。
<?php
namespace App\Http\Controllers;
use App\Item;
use Illuminate\Http\Request;
class ItemController extends Controller
{
public function index() {
return view('item.index', [
'var' => 'hogehoge'
]);
}
}
ビューファイルは /View/item/index.php とする。
return view('item.index' ~ は '/item/index.php' の . を除いた部分を記述する。
(素人の語彙力のなさw)
var に文字列である hogehoge を配列で格納する。
ビューファイルは以下のように記述。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>hogehoge</title>
</head>
<body>
<p> {{ $var }} </p>
</body>
</html>
$var は ItemController.php で記述していた 'var' => 'hogehoge' が格納されている。
echo を使わずにController側で記述した内容をビューファイルに渡し表示させる時は、Laravelの独自変数表示方法である {{ 変数 }} を用いる。
compact関数
今回viewに渡す方法として配列を用いたが、 compact関数 というものを使えば、短く記述することが可能。
記述の仕方としては return view('ファイル', compact('変数')); とすれば良い。
先ほどのファイルに記述するとすれば以下の通りとなる。
<?php
namespace App\Http\Controllers;
use App\Item;
use Illuminate\Http\Request;
class ItemController extends Controller
{
public function index() {
$var = 'hogehoge'
return view('item.index', compact('var'));
}
}
とすれば良い。
今回も勉強になった。
