ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 5 の基礎 (4) - Blade の概要

Laravel 5 の基礎 (4) - Blade の概要

WBOY
リリース: 2016-06-13 12:17:17
オリジナル
848 人が閲覧しました

Laravel 5 基礎 (4) - Blade 入門

ファイルヘッダー、リンクされた CSS や JS など、同じコンテンツが複数のページに含まれる場合があります。レイアウト ファイルを使用してこの機能を実現できます。

新しいレイアウト ファイルを作成します。たとえば、views/layout.blade.php

<code><!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css"></head><body>    <div class="container">        @yield(&#39;content&#39;)    </div></body></html></code>
ログイン後にコピー

パズル構造を作成し、ブートストラップを導入しました。@yield はブレードのレイアウト プレースホルダーであることに注意してください。将来的には、ページのコンテンツがここに入力されるようになります。上記のコード about.blade.php

<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    <h1>About {{ $first }} {{ $last }}</h1>@stop</code>
ログイン後にコピー

を変更して、レイアウト ファイル layout.blade.php を使用することを示し、content セクションにコンテンツを追加します。

routes.php に次を追加します:

<code>Route::get(&#39;about&#39;, &#39;[email&#160;protected]&#39;);Route::get(&#39;contact&#39;, &#39;[email&#160;protected]&#39;);</code>
ログイン後にコピー

PagesController.php に次を追加します:

<code>    public function contact() {        return view(&#39;pages.contact&#39;);    }</code>
ログイン後にコピー

新しいビューpages/contact.blade.php

<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    <h1>Contact Me!</h1>@stop</code>
ログイン後にコピー

チェックしてください!

レイアウト ファイルでは、@yieldlayout.blade.php を追加するなど、複数の @yield('footer') を追加できます。

<code><!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css"></head><body>    <div class="container">        @yield(&#39;content&#39;)    </div>    @yield(&#39;footer&#39;)</body></html></code>
ログイン後にコピー

たとえば、contact.blade.php の場合スクリプトがある場合は、それをこの段落に含めることができます。

<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    <h1>Contact Me!</h1>@stop@section(&#39;footer&#39;)    <script>        alert(&#39;Contact from scritp&#39;)    </script>@stop</code>
ログイン後にコピー

連絡先にアクセスするとダイアログが表示されますが、about は正常に表示されます

  • @ifで判断してください
<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    @if ($first = &#39;Zhang&#39;)        <h1>Hello, Zhang</h1>    @else        <h1>Hello, nobody</h1>    @endif@stop</code>
ログイン後にコピー

@unlessif ! と同等とみなすことができ、@foreach なども同様です。

<code>    public function about()    {        $people = [            &#39;zhang san&#39;,            &#39;li si&#39;,            &#39;wang wu&#39;        ];        return view(&#39;pages.about&#39;, compact(&#39;people&#39;));    }</code>
ログイン後にコピー
<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    <h1>Person:</h1>    <ul>        @foreach($people as $person)            <li>{{ $person }}</li>        @endforeach    </ul>@stop</code>
ログイン後にコピー

次のように、データがデータベースから取得され、コレクションが空である可能性がある状況があります:

<code>$people = [];</code>
ログイン後にコピー

この状況を処理するには、次を追加してください@if ハンドル

<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    @if (count($people))        <h1>Person:</h1>        <ul>            @foreach($people as $person)                <li>{{ $person }}</li>            @endforeach        </ul>    @endif    <h2>Other info</h2>@stop</code>
ログイン後にコピー

その方が良いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート