Laravel 5.4: Viewへデータを引き渡す
Summary
- テンプレートはBladeファイル:
foo.blade.php
withを使ってControllerからViewへ渡す
Controller側:
view('pages.about')->with('name', $name)
- View側:
- エスケープ:
{{$bar}}
- 非エスケープ:
{!! $bar !!}
- エスケープ:
How to basic
app/Http/routes.php
Route::get('about', 'PagesController@about');
- コントローラ作成
$ php artisan make:controller PagesController
- aboutメソッド作成
app/Http/Controllers/PagesController.php
class PagesController extends Controller { public function about() { $name = 'Jeffery Way'; return view('pages.about')->with('name', $name); } }
- テンプレート作成
resources/views/pages/about.blade.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <h1>About {{$name}}</h1> </body> </html>
How to advance
エスケープ
- エスケープ:
{{$bar}}
- 非エスケープ:
{!! $bar !!}
- エスケープ:
データ渡しにwithを使う
- 単数:
- Controller:
view('pages.about')->with('name', $name)
- Template:
{{$name}}
- Controller:
- 複数(配列):
- Controller:
view('pages.about')->with(['first' => 'Jeffery', 'last' => Way'])
- Template:
{{$first}} {{$last}}
- Controller:
- 単数:
- データ渡しにwithを使わない
- 単数:
- Controller:
view('pages.about', $data)
- Template:
{{$first}} {{$last}}
- Controller:
- 複数(連想配列):
- Controller:
view('pages.about', $data)
- Template:
{{$name['first']}} {{$name['last']}}
- Controller:
- 複数(別変数):
- Controller:
view('pages.about', compact('first', 'last'))
- Template:
{{$first}} {{$last}}
- Controller:
- 単数: