(Laravel) ビュー【基本的なルールの解説】

laravel-view

 

LaravelのViewについてのメモ書き

 

Viewとは

MVCモデルのうちのV

laravel-view

viewの役割

view はMVCモデルの中の「view」にあたるやつ。
クライアント画面の表示部分を担当する。

 

viewの配置場所

配置するフォルダは下記

resources→viewsフォルダ内

 

ここにviewのファイルを置いておくことで、ルーティングや、コントローラ側から、
viewメソッドでファイルを呼ぶことができ、画面に内容を表示することができる。

#コントローラからviewメソッドを使う例

public function index() {

   return view('hello.index');  //helloフォルダのindex.phpを呼ぶ
}

 

 

テンプレートエンジン「blade」

Laravelのviewは、bladeというテンプレートエンジンを使う。

bladeを使ったファイルの拡張子は「blade.php」。
bladeには変数の値を{{ }}で埋め込むことができるなど、直感的にソースを扱える特徴がある

bladeの具体的な使い方などは、別記の下記参照。

laravel-view

(Laravel) ビュー【基本的なルールの解説】

 

ビューの使い方

では、本題。ビューの使い方について、解説していく。

 

ビューファイルの呼び出し方

ルーティングや、コントローラからviewファイルを呼び出すには、view()メソッドを使う。
resouses/viewsフォルダからのパスで指定することに注意

#viewメソッドの書き方
view(‘フォルダ名.ファイル名’);

 

コントローラのアクションに記述した例が以下

#コントローラからviewメソッドを使う例

public function index() {

   return view('hello.index');  //helloフォルダのindex.phpを呼ぶ
}

 

「hello.index」と書いてあるが、これはhelloフォルダ内の、index(.blade.php)にアクセスすることを意味する。

フォルダの区切りはカンマで指定する。

.phpや.blade.php等の拡張子は省略できる。

 

値の受け渡し

view()メソッドでは、表示したいビューファイルに、値(配列)を渡すことができる
そうすることで、ビューファイル側で値を使用できるようになり、動的に画面を表示できる。

//値の受け渡し
view( ファイル名, 配列)

 

以下が実際にviewに配列を渡す例。
コントローラのindexアクション内で変数 $data を作成し、viewメソッドの第二引数に渡している。

public function index($id=‘zero’) {

    $data = [
        ‘msg’=>’メッセージ’,
        ‘id’=>$id
    ];

    return view(‘hello,index’, $data);
}

 

キー=>値というphpの基本的な書き方で指定する。

 

受け取った値をビュー側で取り出す

blade(ビュー)側ではこれを、{{$キー}}として受け取る。

先ほどの$dataに入っている、‘msg’=>’メッセージ’を例に説明。
例えば<p>タグに「メッセージ」という値を表示させたい場合以下のようにする

<p>{{$msg}}</p>

 

キーのmsgを「$msg」として{{ }}で囲むだけ。
本来なら<?php 変数名 ?>と書くところを、わかりやすく、簡単に記述することができる。

 

クエリ文字列を受け取る

クエリ文字列とは、
urlの後ろの方にパラメータとして指定できる文字列
キー=値の組み合わせで指定する。

例)urlから「localhost:8080/hello?id=hoge」にアクセスがあった場合、
→「hello?id=hoge」の部分がクエリ文字列になる。

webページはこのパラメータを受けとり、受け取ったデータを元に動的なサイトを作成したりする。で、laravelでクエリ文字列を受け取るには、コントローラのアクション引数に「Request $request」を指定する。

public function index(Request $request) { //Request $requestを指定

    $data  = [
        ‘id’=>$request->id
    ];

    return view(…)
}

 

$requestインスタンスは、受け取ったクエリ文字列の情報を保持しており、
$request->キーとすることで値の取得が可能

 

ヘルパ関数

formタグを使うときには必ず書かないといけないやつ。
CSRFという攻撃を防ぐために書く。

formタグ直下に、{{ csrf_field() }}と記述する。

<form action="" method="post">
    <{{ csrf_field() }}>

.....
</form>

 

blade.phpは.phpより優先度が高い

index.phpとindex.blade.phpがコントローラに存在した状態で、
view(‘index’)を読み込んだら、index.blade.phpが優先的に読み込まれる。

 

viewで変数を受け取る {{$ }} は、HTMLエスケープしてくれる

Laravelの場合、{{$ }}の値(変数を埋め込むやつ)に入った値は、HTMLエスケープ処理を自動で行ってくれる。

逆にエスケープして欲しくない場合は、{{!! !!}}と書く。
タグなどはそのままHTMLとして認識される。

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。