2017-10-16 51 views
0

當用戶瀏覽網站上的不同頁面時,我需要將特定腳本添加到頁腳模板。Laravel 5將路徑傳遞到視圖作曲器的模板

我使用:

public function boot() 
    { 
     view()->composer('partials.jsinclude',function($view) 
     { 

      $view->with('variable',{{how to pass the route here}}); 
     }); 
    } 

我的頁腳模板:

<section id="footer-top" class="section"> 
<!-- Start Footer --> 
<footer class="footer"> 
    //some code here: 
</footer> 
</section> 
<!--/ End Footer --> 
@include ('partials.jsinclude') 

因此,例如當用戶 博客/ taylor_swift頁面上,將僅包含博客腳本文件/ js/taylor_swift在腳本的末尾部分模板

如何將partials.jsinclude模板傳遞給查看器的當前頁面是這樣,例如 「博客」 和 「taylor_swift」 當用戶nagivates到mypage.com/blogs/taylor_swift

+0

您是否想要爲這兩個頁面添加'partials.jsinclude'或你想傳遞數據給它 –

+0

我想傳遞數據給它,特別是控制器的名稱和視圖的名稱。 – Edward

回答

1

嘗試

public function boot() 
{ 
    view()->composer('partials.jsinclude', function ($view) { 
     $action = request()->route()->getAction(); 

     $controller = class_basename($action['controller']); 

     list($controller, $action) = explode('@', $controller); 
     $url = request()->url(); 
     $view_name = str_replace('.', '-', $view->getName()); 
     $view->with(compact('controller', 'action','url','view_name')); 
    }); 
} 

這將加載在你view

1

controller,action,url,view_name變量對於Blogs你做getPrefixtaylor_swift你做getActionName,所以你通過參數傳遞到這樣的看法:

['prefix'=> $ route-> getPrefix(),'action'=> $ route-> getActionName()]