Laravel文档梳理7、视图
前言:Laravel文档梳理,仅作为记录后看,无关其他。
1、视图的目录
Resources/views
2、laravel中如何返回视图
Route::get('/', function () {
return view('greeting', ['name' => 'James']);
});
Ps:通过view()方法
3、通常为了归类视图,可能要在视图目录下,创建子目录,这时该如何操作?
比如,有这么个文件:resources/views/admin/profile.php
返回如下
return view('admin.profile', $data);
4、如何判断一个视图是否存在
if (view()->exists('emails.customer')) {
//
}
Ps:
A、注意,这里的判断,是基于view()方法不传参时,才可使用exists()方法
B、当view()方法不传参调用时,将返回一个Illuminate\Contracts\View\Factory 实例,以方便你调用factory的任意方法
5、如何传递数据到视图?
return view('greetings', ['name' => 'Victoria']);
Ps:注意第二个参数,必须是一个键值对数组
6、传递数据到视图的另一个方法
$view = view('greeting')->with('name', 'Victoria');
7、如何给所有的视图传递一个数据?
<?php
namespace App\Providers;
class AppServiceProvider extends ServiceProvider
{
/**
* 启动任何应用程序的服务。
*
* @return void
*/
public function boot()
{
view()->share('key', 'value');
}
/**
* 注册服务提供者。
*
* @return void
*/
public function register()
{
//
}
}
Ps:使用factory的share()方法。通常,一个参数传递给多个视图,是写在服务提供者的boot方法内。这里写在了AppServiceProvider里,或者,生成一个不同的服务提供者来放置这些代码。
8、什么是视图组件?
视图组件,就是视图被渲染前,会被调用的闭包或类方法。
9、在服务提供者内注册视图组件实例
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class ComposerServiceProvider extends ServiceProvider
{
/**
* 在容器内注册所有绑定。
*
* @return void
*/
public function boot()
{
// 使用对象型态的视图组件...
view()->composer(
'profile', 'App\Http\ViewComposers\ProfileComposer'
);
// 使用闭包型态的视图组件...
view()->composer('dashboard', function ($view) {
});
}
/**
* 注册服务提供者。
*
* @return void
*/
public function register()
{
//
}
}
Ps:以上就是使用view()辅助函数,获取底层Illuminate\Contracts\View\Factory的contract实现。
注意:laravel框架并没有指定默认的视图组件目录。你可以自定义。如上,就是定义在
App\Http\ViewComposers目录
敬告:如果你创建了包含视图组件的一个新的服务提供者,则需要把服务提供者加入到config/app.php文件的providers数组中。
注册好了视图组件,每次在profile视图渲染的时候,ProfileComposer@compose方法都会被运行。
接下看试图组件要如何定义:
<?php
namespace App\Http\ViewComposers;
use Illuminate\Contracts\View\View;
use Illuminate\Users\Repository as UserRepository;
class ProfileComposer
{
/**
* 用户对象的实例。
*
* @var UserRepository
*/
protected $users;
/**
* 创建一个新的个人数据视图组件。
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
{
// 所有依赖都会自动地被服务容器解析...
$this->users = $users;
}
/**
* 将数据绑定到视图。
*
* @param View $view
* @return void
*/
public function compose(View $view)
{
$view->with('count', $this->users->count());
}
}
视图渲染前,composer方法会被调用,并传入一个Illuminate\Contracts\View\View实例,你也可以通过with()方法传入数据。
10、如何对多个视图使用同一个组件?
view()->composer(
['profile', 'dashboard'],
'App\Http\ViewComposers\MyViewComposer'
);
视图的composer方法可以接受*作为通配符,即对所有的视图附加composer
view()->composer('*', function ($view) {
//
});
11、什么是视图创建者,作用又是什么?
视图创建者的好处时,视图在初始化后就立即运行,而视图组件,要一直等视图要被渲染完成时才会被运行。
12、如何注册一个创建者?
view()->creator('profile', 'App\Http\ViewCreators\ProfileCreator');
Laravel文档梳理7、视图相关推荐
- Laravel文档梳理6、响应
前言:Laravel文档梳理,仅作为记录后看,无关其他. 1.laravel框架最基本的响应 Route::get('/', function () { return 'Hello World ...
- MarkdownView:Markdown 文档预览视图组件
原文链接:https://github.com/keitaoouchi/MarkdownView MarkdownView:Markdown 文档预览视图组件.# 为开源点赞# -- 由SwiftLa ...
- MFC框架类、文档类、视图类相互访问(及窗口句柄获取)的方法
1.获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp(); 2.获取主框架指针 CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针 CMai ...
- MFC框架类、文档类、视图类相互访问的方法
1.获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp(); 2.获取主框架指针 CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针 CMain ...
- B2G OS官网文档梳理
前提: B2G OS官方文档地址:https://developer.mozilla.org/en-US/docs/Archive/B2G_OS 在网上查阅关于FireFox OS相关的文章.博客,发 ...
- 服务器文档梳理,工作内容:配置文件服务器并整理文档
<工作内容:配置文件服务器并整理文档>由会员分享,可在线阅读,更多相关<工作内容:配置文件服务器并整理文档(8页珍藏版)>请在人人文库网上搜索. 1.工作内容:配置文件服务器, ...
- 数据产品经理踩坑之——数据无法上卷进行汇总需求文档梳理
背景:前日在出数据需求文档时,错将不可上卷汇总的需求提成了最细粒度化的需求,导致数据无法上卷,因此无法展现的事情,现将此情况进行review,以帮助自己的成长. review:有些数据是无法用最细粒度 ...
- 服务器文档梳理,服务器节点与集群
服务器节点与集群 内容精选 换一换 节点是容器集群组成的基本元素.节点取决于业务,既可以是虚拟机,也可以是物理机.每个节点都包含运行Pod所需要的基本组件,包括Kubelet.Kube-proxy . ...
- 框架、文档、视图类之间的调用关系
在多文档MFC应用程序执行过程中,创建了多于一个的文档类.视图类.子框架类对象和一个主框架类.应用类对象.这些对象之间是通过一定的方式联系在一起的,在应用程序设计中,时常需要通过这些对象之间的关系来实 ...
- C++--在单文档的应用程序增加多个视图
在mfc的单文档的应用程序(Application)设计时,一般是一种文档(Documnet)对应一种视图(View) .然而在有些时候我需要一种文档用多种视图来展现,具体步骤如下: 我们有两个假设 ...
最新文章
- Java Excel表格数据的导入导出
- confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法
- ueditor集成实例php,Laravel框架集成UEditor编辑器的方法图文与实例详解
- Python 进阶_OOP 面向对象编程_类和继承
- Can not find the tag library descriptor for http://www.springframework.org/tags/form 解决方法
- Rsync 基本安装及同步(一)
- Linux配置 DNS and BIND服务配置详解--缓存服务器配置 正反向解析配置
- 17福师《计算机应用基础,福师17春秋学期《计算机应用基础》在线在线作业一.doc...
- 专访Docker大牛:说服传统应用程序使用者是Docker面临的最大难题
- mysql not like 没用_PHP - 使用NOT LIKE时,mysql查询不起作用
- 参数估计法——最大似然估计和贝叶斯参数估计
- LINUX下载编译ccrtp(未成功)
- cad的dwg文件转html文件,DWG格式CAD文件如何转为图片上传到网页?
- Win10右键新建中没有新建文件夹,电脑右键新建文件夹不见了
- 有关笔记本电脑安装触控板驱动程序,对触控板进行相应的设置步骤
- python文本自动伪原创_现在有哪些好用的伪原创工具?
- 《MySQL必知必会》SQL文件
- 分布式 常见的容错机制
- libevent库bufferevent事件实现socket通信
- blob/URL.createObjectURL()/reader.readAsDataURL/文件上传