Laravel メモ

Laravel Blade で@include @yield @section を使いこなそう - Qiita

 

@yieldと@section~@endsectionの違い

→@yieldはテンプレの内容をそのまま表示したい時に使う

→@sectionは、テンプレに@parentを入れておくことで、テンプレの内容+追加の内容を表示したい時に使う

 

<使い方>

ー親テンプレートー

@yield('content')

 

@section('sidebar')

テンプレに追加したい内容

@show 

 

ー子テンプレートー

・yieldで呼び出す場合

@section('content')

<p>ここが本文のコンテンツ</p>

@endsection

 

・sectionで呼び出す場合

@section('sidebar')

@@parent (←親テンプレのsection内に記載した内容)

<p>テンプレの内容</p>

@endsection

 

 

●@で使える構文

https://ogatism.jp/techs/laravel_blade/

@if(condition)
@else
@elseif(condition)
@endif


@foreach($list as $key => $val)
@endforeach

@for($i = 0; $i < 10; $i++)
@endfor

@while(condition)
@endwhile

@include(file) – 他のブレードを読み込みます。
@include(file, [‘var’ => $val,…]) – 他のブレードを読み込み、変数を与えます。

@each(‘viewfile-to-render’, $data, ‘variablename’) – foreach($data as $variablename)という形式でviewfile-to-renderブレードを読み込みます。

@each(‘viewfile-to-render’, $data, ‘variablename’,’optional-empty-viewfile’) – 上記と同様ですが、$dataが空の場合はoptional-empty-viewfileを読み込みます。

@append – 上位ブレードで同じセクションがあった場合、追記されます。
@overwrite – 上位ブレードで同じセクションが合った場合、上書きされます。

@lang(‘message’) – 現在の言語に沿った文章を表示します。
@choice(‘message’, $count) – 現在の言語に沿った文章を複数形で出す場合に$countが使われます。

-----------------------

@auth

You are logged in.

@endauth

-----------------------

@auth('admin')

You are logged in through admin guard

@endauth

-----------------------

@guest

Welcome Guest

@endguest

-----------------------

 

●コントローラーを階層の下に置く場合

コントローラーのnamespaceにその階層を加える

namespace App\Http\Controllers\Mypage;

 

●DBのテーブルの作成

1.コンソールでcd /var/www/app/laravel に移動した後、

php artisan make:migration create_contacts_table

2.laravel/database/migrationsの中に作成されたファイルを編集

3.再びコンソールで、php artisan migrate (既にテーブルがある場合は、migrate:fresh)

 

●コントローラーからviewへの変数の渡し方

[laravel] controllerからviewへの変数の受け渡しとその展開方法 - Qiita

 

●view内でエスケープしたくない変数

{!! $変数 !!}