一,视图:


1,视图文件在哪里?

  • 在laravel项目的resource/view/目录下。
  • 视图有必要进行分目录管理
  • 视图的后缀一般为“.blade.php”
  • 视图无法通过artisan方式创建

2,视图文件的命名与渲染:

  • 文件名习惯小写
  • 文件名的后缀为.blade.php 也可以.php后缀
  • 因为laravel框架中 有一套模板引擎使用的就是blade,当文件后缀为.blade.php时,可以直接只用标签语法,{{$title}},也可以使用原生的php语法来显示数据
  • 当视图文件后缀为.php时,就只能使用php原生的语法来显示数据。
  • 两个视图文件同时存在,则.blade.php后缀的优先显示

3,案例:
编写一个路由地址,调用TestController的viewtest方法,展示视图文件(创建两个,一个以.blade.php后缀,一个以.php结尾),用来验证优先级。

实现步骤,
(1.)首先在laravel文件目录下创建两个test文件,一个以.blade.php结尾,一个以.php结尾

test.blade.php

<body><center><h1>我是test.balde.php</h1></center></body>

test.php

<body><center><h1>我是test.php</h1></center></body>

(2.)在控制器文件TestController写个方法

// 视图方法,判断.blade.php和.php文件后缀的优先级
// viewtest方法名public function viewtest(){// test是创建的test文件(视图两个 名都为test,只是后缀不一样)return view('test');
}

(3,)在laravel项目中的route/web.php声明路由


// 视图,调用在TestController里的viewtest方法
Route::get('viewtest','TestController@viewtest');

(4),在浏览器访问在路由中定义过的viewtest
此时出现的是test.blade.php就说明 .blade.php后缀优先级高于.php后缀

视图也可以分目录管理;


二,变量的分配(assign)与展示


语法:

  1. view(模板文件名称,数组);,数组就是需要分配的变量集合,数组是一个键值数组,其键与变量名尽量保持一致。
  2. view(模板文件名称)->with(数组)
  3. view(模板文件名称)->with(名称,值)->with(名称,值)、

使用view()方式渲染一个视图以后,在**.blade.php**的视图文件中,模板中输出变量使用“{{$变量名}}”
(变量名就是分配过来的数组的键)


案例:将控制器方法中的时间(年月日时分秒)数据传递到视图中去,并且输出


在自定义的TestController.php文件里写一个方法

// 案例:将控制器方法中的时间(年月日时分秒)数据传递到视图中去,并且输出public function viewtest(){$date=date('Y-m-d H:i:s');//表达年月日 时分秒return view('test',['date'=>$date]);//第一个模板文件名称,也就是resources/views/test,,,test是自己建立的// 将获取到的值输出,,在resources/views/test.blade.php文件里
}

在路由文件里定义路由

Route::get('viewtest','TestController@viewtest');

在resources/views/test.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Laravel</title><!-- Fonts --><link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet"><!-- Styles --><style></style></head><body><center><h1>我是test.blade.php</h1><!-- 输出值的方式。。 --><h2>{{$date}}</h2></center></body>
</html>

三,compact函数使用(传参)


compact函数,是php的内置函数,和laravel框架没有关系,主要作用就是用于打包数组,
语法:
compact (‘变量名1’,‘变量名2’…);
在testcontroller控制器里写,,用compact写和 dump([‘day’=>$day]);这种写法,输出的结果一样。

$day=date('N');dump(['day'=>$day]);dump(compact('day'));die;


或者这么写

 public function viewtest(){$date=date('Y-m-d H:i:s');//表达年月日 时分秒return view('test',compact('date'));
}

四,循环与分支语法标签【重点】


在视图中遍历数据与原始PHP循环相比:

  1. 有大括号,则需要去除大括号(不管多少个),然后在当前行最前边写上@
  2. 在结束循环的@的后面加上结束标签“endXXXXXX”

在php中写法和laravel视图中的写法的不同:

//php的写法
foreach($variable as $key=>$value){//循环体
}//在laravel视图中的写法
@foreach($variable as $key=>$value)
//循环体
@endforeach

五,案例:使用循环标签的语法,在视图中输出数据库表数据


在TestController.php里面定义一个方法:

// 案例:使用循环标签的语法,在视图中输出数据,在route/web.php定义路由
public function test4(){// 获取所有数据
$data=DB::table('member')->get();//或者$data=Member::all()
return view('test4',compact('data'));
}
}

在route/web.php文件里定义一下刚才定义方法的路由

Route::get('test4','TestController@test4');

在resources/views/建立一个test4.blade.php的文件

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Laravel</title><!-- Fonts --><link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet"><!-- Styles --><style></style></head><body><center>//遍历输出自己的数据库里的值@foreach($data as $key=>$value){{$value->id}}-{{$value->name}}-{{$value->age}}-{{$value->email}}<br/>@endforeach</center></body>
</html>



六,if判断


laravel if语句写法:
@if(条件判断式1)
执行的语句1
@elseif(条件判断式2)
执行的语句2
@elseif(条件判断3)
执行语句3

@else
默认执行的语句
@endif


七,案例:动态输出今天是星期几,将数字传递给视图,显示今天是星期几,如果传递的数字是7,则输出星期天,将数字转化成数字


在TestController.php里写上,

public function test5(){// 动态输出今天是星期几,将数字传递给视图,显示今天是星期几,如果传递的数字是7,则输出星期天,将数字转化成数字//输出星期几的数字$week=date('N');//输出传递的是星期几,例如Monday// $week=date('l');return view('test5',compact('week'));}

routes/web.php

Route::get('test5','TestController@test5');

在resources/views/建立一个test5.blade.php的文件

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Laravel</title><!-- Fonts --><link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet"><!-- Styles --><style></style></head><body><center>传递过来的数据是:{{$week}}<br />@if($week==1)今天是:星期一@elseif($week==2)今天是:星期二@elseif($week==3)今天是:星期三@elseif($week==4)今天是:星期四@elseif($week==5)今天是:星期五@elseif($week==6)今天是:星期六@elseif($week==7)今天是:星期天@endif</center></body>
</html>

laravel视图 compact 循环遍历,if判断相关推荐

  1. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

    C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...

  2. 二、Vue基础语法学习笔记——事件监听v-on、条件判断(v-if、v-else-if、v-else、v-show)、循环遍历(v-for遍历数组对象,key属性、检测数组更新)、图书案例、双向绑定

    四.事件监听 在前端开发中,我们需要经常和用于交互. 这个时候,我们就必须监听用户发生的时间,比如点击.拖拽.键盘事件等等 在Vue中如何监听事件呢?使用v-on指令 v-on介绍 作用:绑定事件监听 ...

  3. Vue 事件绑定 事件修饰符 条件判断 循环遍历

    事件绑定 v-on:事件 简写:@事件 <div id="app"><h2>{{counter}} </h2><button v-on:c ...

  4. Vue 模板语法 插值操作 绑定属性 计算属性 事件监听 条件判断 循环遍历 阶段案例

    1 插值操作 1.1 Mustache语法 也就是双大括号 {{ }} <div id="app"> <!-- mustche语法中,不仅可以直接写变量,也可以写 ...

  5. for循环遍历数组并获取到数据值进行判断

    /*vm.listData为数组*/ var obj = vm.listData;//for循环遍历数组 获取数组中的 手机号 并判断手机号的 长度 是否为规定的 长度for (var i = 0; ...

  6. python中if判断语句、while循环语句、for循环遍历、break 和continue作用

    一.判断语句 1.if条件判断语句单分支 注意:if和else后面需要加上一个冒号.if和else语句下面的一行需要默认空一个tab键 name = input('请输入您的用户名:') if nam ...

  7. jq循环遍历元素的高度,判断超出显示更多按钮

    项目场景: jq循环遍历元素的高度,用于判断超出显示更多按钮然后点击展示全部,再次点击控制显示一行 问题描述: 第一步:jq循环遍历元素的高度: var divlist=$(".c-clas ...

  8. php渲染视图,Laravel 视图渲染:Blade 模板引擎

    Laravel 视图渲染:Blade 模板引擎 由 学院君 创建于3年前, 最后更新于 2年前 版本号 #1 53378 views 27 likes 0 collects Blade 简介 Blad ...

  9. ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签

    ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签 模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的: 标签类型 描述 普通标签 ...

最新文章

  1. SpringBoot+Mybatis+ Druid+PageHelper 实现多数据源并分页
  2. Spoj LCS2 - Longest Common Substring II
  3. 【实验】华为静态路由基础配置
  4. MongoDB最新4.2.7版本三分片集群修改IP实操演练
  5. 神操作!傅里叶变换取代Transformer自注意力层
  6. 第9章 项目人力资源管理
  7. haproxy5-ssl
  8. android-getTextSize返回值是以像素(px)为单位的,setTextSize()以sp为单位
  9. php基础知识和函数
  10. 企业中常见的杀毒软件
  11. 【Linux】Linux系统学习
  12. android WebView加载网页视频
  13. 实现一个简单的Database1(译文)
  14. windows下软件安装:Anaconda下安装Pymol
  15. vue-router 报NavigationDuplicated: Navigating to current location问题解决
  16. form表单中的 action=./? 是什么意思
  17. 好玩的农场游戏排行榜,好玩的农场游戏有哪些
  18. AskyBlock插件配置教程
  19. 记一次骑缝签性能优化
  20. python学习--quote()函数

热门文章

  1. PHP 重启 php-fpm 的几种方法
  2. TESTTESTTESTTESTTESTTEST
  3. 单独按戴尔笔记本f11键和f12键无法调节亮度了怎么办?用(Fn+F11键或者Fn+F12键就好)
  4. 按键消抖及原理(硬件和软件方法详解)
  5. ios+透明度+css,ios -css
  6. 要想学会编程,首先先会学习方法!
  7. 烟台大学CSDN俱乐部参加2012移动开发者大会见闻
  8. JAVA题目~分数类Fraction Exp03-4
  9. 并网光伏逆变器的基本设计
  10. 关于Springboot中跨域问题的解决(Response to preflight request doesn‘t pass access control check)