欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

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()
    {
        //
    }
}


  1. $message 你可以直接在blade模板的{{}}内写php语句查询。比如:Message::first() 或者 Message::where()...之类的。

  2. 当期登录用户的id也可以直接在blade里写

     
    Auth::user()->id
    
    
    来自  https://segmentfault.com/q/1010000005594982?_ea=828400
普通分类: