So übergeben Sie Daten an die Vorlagenseite in Laravel
为情所困
为情所困 2017-05-16 16:51:29
0
2
460

Teil des Codes der Front-End-Vorlagenseite „layout.blade.php“:

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

Der Rest der Seiten erbt diese Seite.

Wie übergebe ich die Nachrichtendaten in der Navigation im Hintergrund? Wird es einmal im Controller jeder Inhaltsseite übergeben? Dies scheint sehr problematisch zu sein; eine weitere Frage: Wie kann man Auth::user()->id in der boot()-Methode von AppServiceProvider verwenden, um die ID des aktuell angemeldeten Benutzers auf verschiedene Weise zu erhalten?

为情所困
为情所困

Antworte allen(2)
淡淡烟草味
<?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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage