viewヘルパとは?
viewヘルパはweb.phpやcontrollerでviewファイルを表示させたい時なんかに使われますね!
メソッドに表示させたいbladeファイルの名前(welcometech.blade.phpなら'welcometech')を渡せばOKです。
例えばこんな感じです。
// web.phpで見かける例
Route::get('/', function () {
return view('welcometech');
})->name('welcome');
// controllerで見かける例
class TechController extends Controller
{
public function index ()
{
return view('welcometech');
}
}
上記を簡単に解説しておくと、ルートにて直接viewを使用して、welcometech.blade.phpが表示されるようにしている例と、ルートでコントローラーのメソッドを呼び出し、そのメソッドの中に書いている例です。
viewヘルパの基本的な使い方
viewヘルパは簡単に使えます!
// welcome.blade.phpを表示する
return view('welcome');
上記をみていただければ全てわかるかと思いますが、引数に表示したいbladeファイルの”.blade”より前の名前の文字列を渡せば表示することができます。
注意しなければいけないのが、ここで表示させたいbladeファイルはlaravelのファイル構成のviewsフォルダ(resources/views)に保存しなければいけません。
もしも配置がおかしかったりすると...
"View [welcome] not found."
といったlaravelのエラーになってしまいます。
viewに変数を渡す
さて、次に少し応用でviewに変数を渡す方法をみていきます。
例えばコントローラーで処理をした値をviewで表示させたり、モデルから持ってきたDBの値を羅列したりする場合には変数として渡してあげる必要があります。
先ほども説明しましたが、第一引数には"遷移先のbladeファイル名"を。
そして第二引数に"渡したい変数についての情報"を渡します。
例えば以下のような感じです。
public function index ()
{
$tech = 'てくてくテック';
return view('welcometech', ['techtech' => $tech]);
}
上記のコードのように書けばwelcometechビューへ、$techtech
という変数名で$tech
を渡すことができます。
第二引数は"['渡す先での変数名' => 今回渡す変数]"ですね。
ちなみに、渡す側では、渡す先での変数名の頭に"$"は必要ありません。
逆に渡される側(viewファイル)では"$"をつけないと変数と認識されないのでお気をつけください。
この状態で"welcometech.blade.php"に
{{ $techtech }}
と書くことでその画面で”てくてくテック”と表示されます。
また、複数の値を渡すことももちろん可能です。
$tech = 'てくてくテック';
$technum = 15;
return view('welcometech', ['techtech' => $tech, 'technum' => $technum]);
上記のようにすることで、blade側にて$techtech
と$technum
が使えるようになります。
数が増えてきたら以下のようにインデントの調節をしておくと、見る人は助かります...!
(みやすいの大切...!)
return view('welcometech', [
'techtech' => $tech,
'technum' => $technum,
...
]);
引数のbladeファイル名にドットがついてる?
さて、先ほど、viewの第一引数にはbladeのファイル名を渡すとご説明しましたが、たまにその中にも"."(ドット)が入っているものがあります。
view('hoge.huga.welcome');
これはフォルダの階層を表しています。
正確にはviewsフォルダからの、表示したいファイル位置を示しています。
例えば、上記'hoge.huga.welcome'の場合、"resource/views/hoge/huga/welcome.blade.php"というファイルが存在するのであれば, welcome.blade.phpが表示されるようになります。
この、viewsファイル以下であれば、役割ごとに新しいフォルダを作っても上記のドット記法で参照ができるわけです。
必要ページ数が数ページの場合はないかもしれませんが、中規模以上になってくるとフォルダ分けしないと大変なので、こう行った記法が目立つでしょう。
まとめ
さて、今回はlaravelを使っていく上で重要になってくるviewヘルパについて調べてみました。
viewヘルパはコントローラーのメソッドには必ずと行っていいほど使われるので、しっかり理解して、出るたびに調べる手間を減らしたいですね。
また、今回お話しした内容は以下公式リファレンスを参考にさせていただきました。
皆さんもぜひ熟読してみてください。
それでわ!