【PHP框架 | Laravel8 系列5】 - 视图与CSRF保护
前言:之前在学习并使用 Laravel 框架过程中,全是碎片化掌握,现在重新学习并记录一次学习的过程。
本文内容对应
Laravel8.*
版本。Laravel 直达入口:
- Laravel 框架专栏
- Laravel 框架官网
一、视图
Laravel 的视图文件存放于
resources/views
目录中。
1.1 创建视图
<!-- View stored in resources/views/greeting.blade.php --><html><body><h1>Hello, {{ $name }}</h1></body>
</html>
将上述代码保存至
resources/views/greeting.blade.php
文件后,就可以通过view
助手函数返回。
view
助手函数的第一个参数为 视图模板的名称,第二个参数为可供视图的数据数组。Route::get('/', function () {return view('greeting', ['name' => 'James']); });
也可将模板保存至
views
的子目录。使用点 .
引用嵌套视图。return view('admin.profile', $data);
1.2 判断视图是否存在
use Illuminate\Support\Facades\View;# 如果存在,则会返回 true
if (View::exists('emails.customer')) {//
}
1.3 向视图传递数据
使用
view
助手函数的第二个参数使用
view
助手函数链式调用with
方法return view('greeting')->with('name', 'Victoria');
1.4 与所有视图共享数据
有时,有一些公共数据需要在所有页面都展示,这时,你就可以在 服务提供器的
boot
方法中调用视图门面的share
方法。例如<?phpnamespace App\Providers;use Illuminate\Support\Facades\View;class AppServiceProvider extends ServiceProvider {/*** Register any application services.** @return void*/public function register(){//}/*** Bootstrap any application services.** @return void*/public function boot(){View::share('key', 'value');} }
二、视图合成器
视图合成器是调用视图时的回调或者类方法。在视图即将渲染时执行。
默认没有存放 视图合成器 的目录,例如可以新建并存放在
app/Http/View/Composers
目录中。使用
View
门面调用composer
方法,即可在视图渲染之前被调用。
2.1 创建视图合成器
接下来的示例步骤是:
- 创建服务提供者并注册
- 在服务提供者的
boot
方法中,调用composer
方法,定义视图合成器- 定义视图合成器调用类
创建服务提供者,并在
config/app.php
文件中的providers
数组中注册<?phpnamespace App\Providers;use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider;class ViewServiceProvider extends ServiceProvider {/*** Register any application services.** @return void*/public function register(){//}/*** Bootstrap any application services.** @return void*/public function boot(){# 2. 在服务提供者的 `boot` 方法中,调用 `composer` 方法,定义视图合成器// Using class based composers...View::composer('profile', 'App\Http\View\Composers\ProfileComposer');// Using Closure based composers...View::composer('dashboard', function ($view) {//});} }
定义视图合成器调用类
<?phpnamespace App\Http\View\Composers;use App\Repositories\UserRepository; use Illuminate\View\View;class ProfileComposer {/*** The user repository implementation.** @var UserRepository*/protected $users;/*** Create a new profile composer.** @param UserRepository $users* @return void*/public function __construct(UserRepository $users){// Dependencies automatically resolved by service container...$this->users = $users;}/*** Bind data to the view.** @param View $view* @return void*/public function compose(View $view){$view->with('count', $this->users->count());} }
所有的视图合成器都会通过 服务容器 进行解析,所以你可以在视图合成器的构造函数中类型提示需要注入的依赖项。
2.2 将视图合成器添加到多个视图
通过
composer
方法的第一个参数传入 视图数组,就可以将多个视图添加到视图合成器中。通过
composer
方法的第一个参数传入星号 *
,就可以将所有视图添加到视图合成器中。
# 多个
View::composer(['profile', 'dashboard'],'App\Http\View\Composers\MyViewComposer'
);# 所有
View::composer('*', function ($view) {//
});
三、视图构造器
与视图合成器不同的是,视图构造器在 视图实例化之后执行。
其他使用方法与视图合成器相同。
使用
View
门面的creator
方法生成视图构造器。
View::creator('profile', 'App\Http\View\Creators\ProfileCreator');
四、视图优化
官网说的很明白,恩。
【PHP框架 | Laravel8 系列5】 - 视图与CSRF保护相关推荐
- 【PHP框架 | Laravel8 系列3】 - 路由
前言:之前在学习并使用 Laravel 框架过程中,全是碎片化掌握,现在重新学习并记录一次学习的过程. 本文内容对应 Laravel8.* 版本. 直达入口: Laravel 框架专栏 Laravel ...
- 【PHP框架 | Laravel8 系列4】 - Artisan 命令行
前言:之前在学习并使用 Laravel 框架过程中,全是碎片化掌握,现在重新学习并记录一次学习的过程. 本文内容对应 Laravel8.* 版本. 直达入口: Laravel 框架专栏 Laravel ...
- 【PHP框架 | Laravel8 系列1】 - Composer 安装指定 Laravel 版本
前言:之前在学习并使用 Laravel 框架过程中,全是碎片化掌握,现在重新学习并记录一次学习的过程. 本文内容所对应 Laravel8.* 版本. 一. 安装 Composer 第一种: Compo ...
- 深入学习SAP UI5框架代码系列之八:谈谈 SAP UI5 的视图控件 ID,以及 SAP UI5 视图和 Angular 视图的异同
今天是 2021 年 4 月 27 日,周二,SAP 全球心理健康日.SAP 全球的员工,今天放假一天. 这不,早在上周五,我所在的 SAP Spartacus 开发团队的开发经理,就贴心地在 Sla ...
- 深入学习SAP UI5框架代码系列之七:控件数据绑定的三种模式 - One Way, Two Way和OneTime实现原理比较
这是Jerry 2021年的第 8 篇文章,也是汪子熙公众号总共第 279 篇原创文章. 系列目录 (0) SAP UI5应用开发人员了解UI5框架代码的意义 (1) SAP UI5 module懒加 ...
- 深入学习SAP UI5框架代码系列之六:SAP UI5控件数据绑定的实现原理
这是Jerry 2021年的第 7 篇文章,也是汪子熙公众号总共第 278 篇原创文章. 系列目录 (0) SAP UI5应用开发人员了解UI5框架代码的意义 (1) SAP UI5 module懒加 ...
- 深入学习SAP UI5框架代码系列之五:SAP UI5控件的实例数据修改和读取逻辑
这是Jerry 2021年的第6篇文章,也是汪子熙公众号总共第277篇原创文章. 系列目录 (0) SAP UI5应用开发人员了解UI5框架代码的意义 (1) SAP UI5 module懒加载机制 ...
- 深入学习SAP UI5框架代码系列之四:SAP UI5控件的元数据实现
这是Jerry 2021年的第5篇文章,也是汪子熙公众号总共第276篇原创文章. 系列目录 (0) SAP UI5应用开发人员了解UI5框架代码的意义 (1) UI5 module懒加载机制 (2) ...
- 深入学习SAP UI5框架代码系列之三:HTML原生事件 VS UI5 Semantic事件
这是Jerry 2020年的第80篇文章,也是汪子熙公众号总共第262篇原创文章. 系列目录 (0) SAP UI5应用开发人员了解UI5框架代码的意义 (1) UI5 module懒加载机制 (2) ...
最新文章
- 成就PHP高手的五个必由之路
- python中import与input_python3入门之print,import,input介绍
- nginx A/B 灰色发布
- Asp.net(C#)常用函数表--新手必备
- AMD、CMD、CommonJS、ES6(import/export)
- linux服务器 版本 比例,Linux比例近半 服务器操作系统混战开始
- 参数 携带 跳转_微信小程序:页面跳转及参数传递
- html页面授权码,spring boot 2.0 整合 oauth2 authorization code授权码模式
- 亲密关系沟通-【归属感】提升归属感的沟通方法
- 1./app/logs/ 里面的日志只保留7天的(apache每天生成一个文件)
- android屏幕内容实时传输,在设备之间无缝传输内容
- 论中国智慧城市的发展前景
- 修改openssh版本信息
- Spring Boot多数据源配置并通过注解实现动态切换数据源
- 基于numpy实现矩阵计算器
- JSTL 标签库c:if :forEach :forTokens
- Atitit 二维码和条码的历史发展 1.发展历程 编辑提及二维码的诞生,我们还得倒回至上个世纪 60 年代之后的日本,虽然 1945 年的第二次世界大战之中日本沦为战败国,可是在经济方面日本却进入
- 印第安人的捕梦网 Dreamcatcher 与音乐——排箫
- 网友:后悔知道太晚了,视频被判定为重复度过高?原来答案是这样
- f81沒有啟用配銷模組,全用INV的雜項處理方式處理,有以下管理要求
热门文章