suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So übergeben Sie Daten an die Vorlagenseite in Laravel

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?

为情所困为情所困2789 Tage vor481

Antworte allen(2)Ich werde antworten

  • 淡淡烟草味

    淡淡烟草味2017-05-16 16:53:29

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

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 16:53:29

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

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

      Auth::user()->id

    Antwort
    0
  • StornierenAntwort