前言: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、视图相关推荐

  1. Laravel文档梳理6、响应

    前言:Laravel文档梳理,仅作为记录后看,无关其他. 1.laravel框架最基本的响应 Route::get('/', function () {     return 'Hello World ...

  2. MarkdownView:Markdown 文档预览视图组件

    原文链接:https://github.com/keitaoouchi/MarkdownView MarkdownView:Markdown 文档预览视图组件.# 为开源点赞# -- 由SwiftLa ...

  3. MFC框架类、文档类、视图类相互访问(及窗口句柄获取)的方法

    1.获取应用程序指针  CMyApp* pApp=(CMyApp*)AfxGetApp(); 2.获取主框架指针  CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针  CMai ...

  4. MFC框架类、文档类、视图类相互访问的方法

    1.获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp(); 2.获取主框架指针  CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针  CMain ...

  5. B2G OS官网文档梳理

    前提: B2G OS官方文档地址:https://developer.mozilla.org/en-US/docs/Archive/B2G_OS 在网上查阅关于FireFox OS相关的文章.博客,发 ...

  6. 服务器文档梳理,工作内容:配置文件服务器并整理文档

    <工作内容:配置文件服务器并整理文档>由会员分享,可在线阅读,更多相关<工作内容:配置文件服务器并整理文档(8页珍藏版)>请在人人文库网上搜索. 1.工作内容:配置文件服务器, ...

  7. 数据产品经理踩坑之——数据无法上卷进行汇总需求文档梳理

    背景:前日在出数据需求文档时,错将不可上卷汇总的需求提成了最细粒度化的需求,导致数据无法上卷,因此无法展现的事情,现将此情况进行review,以帮助自己的成长. review:有些数据是无法用最细粒度 ...

  8. 服务器文档梳理,服务器节点与集群

    服务器节点与集群 内容精选 换一换 节点是容器集群组成的基本元素.节点取决于业务,既可以是虚拟机,也可以是物理机.每个节点都包含运行Pod所需要的基本组件,包括Kubelet.Kube-proxy . ...

  9. 框架、文档、视图类之间的调用关系

    在多文档MFC应用程序执行过程中,创建了多于一个的文档类.视图类.子框架类对象和一个主框架类.应用类对象.这些对象之间是通过一定的方式联系在一起的,在应用程序设计中,时常需要通过这些对象之间的关系来实 ...

  10. C++--在单文档的应用程序增加多个视图

    在mfc的单文档的应用程序(Application)设计时,一般是一种文档(Documnet)对应一种视图(View) .然而在有些时候我需要一种文档用多种视图来展现,具体步骤如下: 我们有两个假设 ...

最新文章

  1. Java Excel表格数据的导入导出
  2. confluence中org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed的解决方法
  3. ueditor集成实例php,Laravel框架集成UEditor编辑器的方法图文与实例详解
  4. Python 进阶_OOP 面向对象编程_类和继承
  5. Can not find the tag library descriptor for http://www.springframework.org/tags/form 解决方法
  6. Rsync 基本安装及同步(一)
  7. Linux配置 DNS and BIND服务配置详解--缓存服务器配置 正反向解析配置
  8. 17福师《计算机应用基础,福师17春秋学期《计算机应用基础》在线在线作业一.doc...
  9. 专访Docker大牛:说服传统应用程序使用者是Docker面临的最大难题
  10. mysql not like 没用_PHP - 使用NOT LIKE时,mysql查询不起作用
  11. 参数估计法——最大似然估计和贝叶斯参数估计
  12. LINUX下载编译ccrtp(未成功)
  13. cad的dwg文件转html文件,DWG格式CAD文件如何转为图片上传到网页?
  14. Win10右键新建中没有新建文件夹,电脑右键新建文件夹不见了
  15. 有关笔记本电脑安装触控板驱动程序,对触控板进行相应的设置步骤
  16. python文本自动伪原创_现在有哪些好用的伪原创工具?
  17. 《MySQL必知必会》SQL文件
  18. 分布式 常见的容错机制
  19. libevent库bufferevent事件实现socket通信
  20. blob/URL.createObjectURL()/reader.readAsDataURL/文件上传

热门文章

  1. NeoKylin7配置DM8数据库实例
  2. 怎么压缩PPT大小?
  3. 基于.net实现F4一键杀死指定进程(龙之谷秒掉器)
  4. 【HDU1411】四面体的体积公式
  5. MySQL 5.7 + Navicat 下载安装教程(附安装包)
  6. 基于线性回归房价预测散点图和折线图
  7. Git与GitHub的了解与运用
  8. springboot中.yml 用jasypt 密码加密
  9. 620集成显卡和mx250_英伟达mx250和英特尔uhd620显卡那个好?
  10. python椭圆曲线加密信息_ECC椭圆曲线加密算法:ECDH 和 ECDSA