Laravel视图共享数据

Laravel视图共享数据

最近在用lavavel过程中想实现公共头部尾部需要的配置数据在所有的页面中都可以使用,便查看了官方文档,在此做一个总结:

一. 修改 ComposerServiceProvider 服务

  在app/Providers目录下面找到ComposerServiceProvider.php 文件,将其修改成如下面类似:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        view()->composer(
            ‘home.*‘,
            ‘App\Http\ViewComposers\BaseInfoComposer‘
        );
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

注意:composer的第一个参数是需要公用数据的试图问题,我这边是home下的所有文件,第二个参数是具体要执行的文件。

二 . 处理数据获取并渲染

创建App\Http\ViewComposers\BaseInfoComposer.php 这个文件,将其修改成如下面类似:

<?php

namespace App\Http\ViewComposers;

use Illuminate\View\View;
use App\Http\Models\Backend\Nav;
use App\Http\Models\Backend\Config;

class BaseInfoComposer
{
    /**
     *  将数据绑定到视图。
     *
     * @param  View  $view
     * @return void
     */
    public function compose(View $view)
    {
        $view->with([
            ‘nav‘=>Nav::where(‘is_delete‘,1)->orderBy(‘sort‘,‘desc‘)->get(),
            ‘base‘=>json_decode(Config::where(‘name‘,‘基本配置‘)->value(‘configs‘),true),
            ‘other‘=>json_decode(Config::where(‘name‘,‘其它配置‘)->value(‘configs‘),true),
            ]);
    }
}

三. 注册服务

config/app.php文件下的providers数组中进行注册:

App\Providers\ComposerServiceProvider::class,

再在页面中就都可以调用了

原文地址:https://www.cnblogs.com/crazytata/p/10209000.html

时间: 2024-09-16 14:19:57

Laravel视图共享数据的相关文章

实训25 共享数据块和系统功能的调用

实训25 共享数据块与系统功能的调用 关键字:共享数据块和符号表中的变量 为全局变量.可供所有逻辑块使用 注意符号表中的变量 描述 . 功能块中的变量 成为变量声明表,与符号表区别开来. 变量声明表里面的额变量是局部变量,符号表里的是全局变量. 关键字: 实际参数 "P#DB1.DBX0.0 INT 4"表示的是 共享数据表里面 的4个 数组元素的地址 . 在声明视图里查看 共享数据表的声明表 地址 0.0 对应数组的第一个地址. 数据块(DB)用来分类存储设备或者生产线中变量的值.

78.PL和PS通过BRAM交互共享数据

本篇文章目的是使用Block Memory进行PS和PL的数据交互或者数据共享,通过zynq PS端的Master GP0端口向BRAM写数据,然后再通过PS端的Mater GP1把数据读出来,将结果打印输出到串口终端显示. 涉及到AXI BRAM Controller 和 Block Memery Generator等IP的使用. 本系列文章尽可能的让每一个实验都相对独立,过程尽可能保证完整性,保证实验的可重现性. 但是用到的模块或者IP的具体作用和用法不保证都重复详细的介绍. 本文所使用的开

iOS应用程序间共享数据(转)

我们知道iOS由于沙盒的存在,应用程序不能越过自己的区域去访问别的存储空间的内容,不过可能有许多场景我们需要在应用程序之间共享数据,比如多个应用共用用户名密码进行登录等.虽然我们不能直接通过文件系统来分享数据,不过还是有些方法可以实现,为了方便说明,这里同时创建了两个工程Example1和Example2,实现这两个app之间的信息共享,Example1负责写数据,Example2负责读数据,具体的demo代码可以到这里获取 UIPasteboard 剪贴板是应用程序之间传递数据的简单方式,建议

不同App之间共享数据

我们知道iOS由于沙盒的存在,应用程序不能越过自己的区域去访问别的存储空间的内容,不过可能有许多场景我们需要在应用程序之间共享数据,比如多个应用共用用户名密码进行登录等.虽然我们不能直接通过文件系统来共享数据,不过还是有些方法可以实现. 这里,我们新建两个工程,T1:负责写数据,T2:负责读数据. 方法一:UIPasteboard 剪贴板是应用程序之间传递数据的简单方式,建议不要使用全局的粘贴板,而是自己根据名字创建一个新的粘贴板,防止其它地方全局拷贝的影响.然后把需要共享的内容复制到粘贴板,粘

Serlvet学习笔记之二—不同页面共享数据

一共有四种方法实现共享页面共享数据 1.cookie 2.sendRedirect 3.session 4.隐藏表单提交(form) 1.cookie:服务器在客户端保存用户信息,比如登录名,密码等,实现网页个性化. 2.sendRedirect:通过该方法将信息传送给下一个页面. 优点:传送的信息比较快 缺点:它只能传送字符串,不能传送对象. 形式:sendRedirect("welcome"?uanme=admin&pwd=123") 传递 res.sendRed

android 应用间共享数据,调用其他app数据资源

1.通过获取相同shareUserId的context 1)相同shareUserId,不同进程,shareUserId 和 lunix进程的uid不是同一概念. 2)相同shareUserId,相同进程 资源共享原理分析. 2.contentprovider 共享数据 参看网址: Android PackageManagerService分析一:PMS的启动

ThreadLocal实现:java线程范围内的共享数据,线程外独立

场景应用:银行转账时,A给B转账,C给D转账.两者都是调用的connection.begainTransaction();connection.commit(); 如何才能保证A,B同在一个线程中,C.D同在一个线程中,且A,BC,D在线程内共享,在线程外独立. 方法一,Map<Thread, Integer>实现: /** * 线程范围内的共享数据 */ package cn.itcast.lesson5; import java.util.HashMap; import java.util

C++共享数据的保护

共享数据的保护:常类型 常类型的对象必须初始化,且这个值不能被更新 常引用:被引用的对象不能更新 const 类型说明符 & 引用名 常对象:必须进行初始化,不能更新 类名 const 对象名 常数组:数组元素不能更新 类型说明符 const 数组名[大小] 常指针:指向常量的指针 C++共享数据的保护,布布扣,bubuko.com

多线程共享数据

线程间的数据共享 多个线程共享数据, A线程生产物品,产品数量增加,B线程使用,那么产品数量减少,B线程如何知道产品buf是否为空呢?A线程如何判断产品buf为满?1 轮询机制      线程每隔一定时间检查缓冲区,如果有产品就取出,这种机制需要控制好轮询间隔,查询太频繁会导致占用cpu过多,浪费:查询太不频繁导致缓冲区满,生产者放不进去产品  int buf[MAX];  int ProductionCount;  while(1)  {  Msleep(100);     if(Produc