这一节来讲讲 blade 这个 view engine 的一些关于判断的指令。

1. if

首先在 action 加一个变量,找到 app/Http/PagesController.php 文件,修改其内容如下:

// app/Http/PagesController.php

<?php

...

class PagesController extends Controller
{
    ...

    public function blade()
    {
        $gender = 'femffffale';
        $text = 'Hello there!';
        return view('blade.bladetest', compact('gender', 'text'));
    }
}

然后我们在 view中来判断这个 $gender 变量的内容。

找到 resources/views/blade/bladetest.blade.php 文件,修改其内容如下:

...

@section('body')
    <div class="jumbotron">
        <h1 class="display-3">
            Your gender is
            @if($gender == 'male')
                male
            @elseif($gender == 'female')
                female
            @else
                unknown
            @endif
        </h1>
    </div>

    <div class="row marketing">
       ...
    </div>
@endsection

页面上会这么显示:

结合上面的 @if 指令的判断,因为 $gender 的值为 femffffale,即不是 male,也不是 female,所以最后显示 unknown

可以分别改成 malefemale 来试试效果。

很容易理解。

2. unless

unless 其实 !ifif 的相反的意思。

我们来个例子说明一下。

...

@section('body')
    <div class="jumbotron">
        <h1 class="display-3">
            ...
        </h1>
        <p class="lead">
            @unless(empty($text))
                {{ $text }}
            @endunless

            @if(!empty($text))
                {{ $text }}
            @endif
        </p>
    </div>

    <div class="row marketing">
       ...
    </div>
@endsection

最后显示:

3. isset 和 or

isset 是判断变量是否存在。

<p>{{ isset($variableDoesNotExist) ? $variableDoesNotExist : 'The variable does not exist' }}</p>

效果如下:

它也可以用 or 来写,结果一样的。

<p>{{ $variableDoesNotExist or 'This really does not exist' }}</p>

完结。

下一篇:Ruby 程序员学习 laravel 框架笔记 (13)-factories, faker and seeding

results matching ""

    No results matching ""