Ruby 程序员学习 Laravel 框架笔记 (12)-Blade if/else/unless/or

这一节来讲讲 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 其实 if !,if 的相反的意思。

我们来个例子说明一下。

...

@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

本作品采用《CC 协议》,转载必须注明作者和本文链接
咱们的学习圣地是: https://www.qiuzhi99.com,这里有不限于 Nodejs、React、TypeScript、GraphQL 相关的精品课程。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。