# 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
```
页面上会这么显示:
![](https://box.kancloud.cn/9e4b210157dcb473cf4bf752a79d6b3b_2462x1040.png)
结合上面的 `@if` 指令的判断,因为 `$gender` 的值为 `femffffale`,即不是 `male`,也不是 `female`,所以最后显示 `unknown`。
可以分别改成 `male` 或 `female` 来试试效果。
很容易理解。
## 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
```
最后显示:
![](https://box.kancloud.cn/2773a4c75683c8ff90caefb40094393b_2356x1112.png)
## 3. isset 和 or
`isset` 是判断变量是否存在。
```
<p>{{ isset($variableDoesNotExist) ? $variableDoesNotExist : 'The variable does not exist' }}</p>
```
效果如下:
![](https://box.kancloud.cn/3206ae8218cba35ce7472d726afe5273_2306x1072.png)
它也可以用 `or` 来写,结果一样的。
```
<p>{{ $variableDoesNotExist or 'This really does not exist' }}</p>
```
完结。
下一篇:[Ruby 程序员学习 laravel 框架笔记 (13)-factories, faker and seeding](https://www.rails365.net/articles/ruby-cheng-xu-yuan-xue-xi-laravel-kuang-jia-bi-ji-13-factories-faker-and)
- 0. 介绍
- 1. php 开发环境安装
- 2. 跑 laravel 的 hello world
- 3. 第一个路由 UsersController
- 4. 在数据库中创建一条数据
- 5. 简单的用户认证
- 6. 修改 User model
- 7. User model 的 getter 方法
- 8. view 的更多知识
- 9. 在 view 中共享变量
- 10. blade layout
- 11. 使用 @include 来整理 view
- 12. Blade if/else/unless/or
- 13. factories, faker and seeding
- 14. Blade foreach
- 15. 分页
- 16. 用中间件来限制用户必须登录
- 17. Route group
- 18. CURD 实践之改变用户表结构
- 19. CURD 实践之为新添加的属性修改注册功能
- 20. CURD 实践之用 username 来代替 email 登录
- 21. CURD 个人中心页面
- VIM 的 laravel 插件
- VIM 中有效地查看 php 源码