laravel8
一、视图
(1)循环与分支的语法标签
if判断:
区别:
例题:要求在PHP代码中(控制器的方法)动态输出今天的星期数字将数字传递给视图,显示出今天星期几,假如设传递的数字是7,则页面中要输出“星期天”【将数字转换成汉字】
(2)模板继承/包含【理解】
a、继承不仅仅在PHP类中存在,在视图中同样存在,一般是用于做有公共部分的页面;
b、编写父级页面:语法:@yield(“名字”) 在父级页面中的占位,也就是空出可变区域
在父页面中,头尾是固定的中间是可变的区域,由于内容不知道是什么,所以通过yield占位,等待子页面去补充(等待子页面重写yield区域);
c、继承语法:子模板中按以下语法书写:
@extends(‘需要继承的模板文件名’)其名称要是完整的路径,类似view视图路径,通过section标签绑定区块/部件到父级页面,区块名称就是父级页面yield标签的参数名; @section(区块名称)
二、CSRF【跨站请求伪造】
laravel框架中避免CSRF攻击:laravel自动为每个用户Session生成一个CSRF Token,该Token可用于验证登录用户和发起请求者是否是同一人,如果不是则请求失败【该原理和验证码的原理是一致】
laravel提供了一个全局帮助函数csrf_token()来获取该Token值,因此只需要在视图提交表单中添加如下HTML代码即可在请求中带上Token;
<input type="hidden" name="_token" value="{{csrf_token()}}">
在ThinkPHP中称之为表单令牌;
laravel框架默认开启csrf验证,因此必须要在前台表单中做对应的处理;CSRF验证在laravel框架中只对POST请求生效,不处理GET请求;
三、结构图