laravel如何向模板页面传递数据

查看:1030
本文介绍了laravel如何向模板页面传递数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

前台模板layout.blade.php页面部分代码:

<nav>{{ $message }}</nav>
<div class="container">  @yield('content') </div>
<footer></footer>

其余页面继承该页面。

nav中的message数据该如何从后台传递过来?是在每个内容页面的controller里都传递一次吗?这样觉得很麻烦 ;另外一个问题,如何在AppServiceProvider的boot()方法中使用Auth::user()->id在各种方式获取当前登录用户的id?

解决方案

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Auth;

class ComposerServiceProvider extends ServiceProvider
{
    /**
     * 在容器中注册绑定.
     *
     * @return void
     * @author http://laravelacademy.org
     */
    public function boot()
    {

        // 使用基于闭包的composers...
        view()->composer('admin.header', function ($view) { 
            $data['order-remind']=null;
            $data['order']=null;
            $data['order-remind']=null;
            $view->with('data',$data);
        });

        view()->composer('admin.nav', function ($view) {
            $user=auth()->guard('admin')->user();
            $view->with('user',$user);
        });

        view()->composer('agent.main', function ($view) {
            $user=auth()->guard('agent')->user();
            $view->with('user',$user);
        });

        view()->composer('account.main', function ($view) {
            $user=auth()->guard('account')->user();
            $wechat=Auth::guard('wechat')->user();
            $view->with('account',$user)->with('wechatAccount',$wechat);
        });

        view()->composer(['wechat.js.index','wechat.activity.vote.main'], function ($view) {
            $app=app('wechat');
            $js=$app->js;
            $view->with('js',$js);
        });

    }

    /**
     * 注册服务提供者.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

这篇关于laravel如何向模板页面传递数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆