2017-06-09 71 views
0

我創建了一個master.blade.php文件如下從數據庫中的數據顯示:Laravel 5.4主刀片:在頁腳

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    @include('layouts.head_files') 
    </head> 

    <body> 

     <!-- START MAIN WRAPPER --> 
     <div id="wrapper"> 

     <!-- SEARCH FORM START --> 
      @yield('info_panel') 
     <!-- SEARCH FORM END --> 


     <!-- Start Page Content --> 
     <div class="recent-job"> 
      <div class="container"> 
      <div class="row"> 
       <div class="col-md-12">      
       @yield('main_content')           
       <div class="spacer-2"></div> 
       </div>  
       <div class="clearfix"></div> 
      </div> 
      </div> 
     </div> 
     <!-- End Page Content --> 

    </div> 
     <!-- END MAIN WRAPPER --> 

    @include('layouts.footer_files') 
    </body> 
</html> 

這是我footer_file.blade.php文件

 <script type="text/javascript"> 
    $(document).ready(function(){ 
    $('input.location').typeahead({ 
     name: 'location', 
     local: ['London','Birmingham','Manchester', 'Liverpool'] 
    }); 
    }); 
    </script> 

<script src="<?=asset('assets');?>/bootstrap/js/bootstrap.min.js"></script> 
<script src="<?=asset('assets');?>/js/jquery.easytabs.min.js" type="text/javascript"></script> 
<script src="<?=asset('assets');?>/js/modernizr.custom.49511.js"></script> 
<script type="text/javascript" src="<?=asset('assets');?>/jquery.min.js"></script> 
<script type="text/javascript" src="<?=asset('assets');?>/js/typeheads.min.js"></script> 

正如你所看到的,我的footer_file文件中有一個功能中的一些城市。我現在已經硬編碼了,但我想從數據庫中獲取所有城市的列表並在此處顯示。此頁腳包含在每個頁面中。我發現在Laravel很難做到這一點。在Codeigniter中很容易。我可以直接從我的視圖訪問數據庫嗎?請幫忙。

+0

檢查這一點,可以幫助你https://laravel.com/docs/5.4/views#view-作曲家 –

回答

0

有時候,您可能需要共享一段包含應用程序呈現的所有視圖的數據。您可以使用視圖外觀的共享方法。通常情況下,您應該將呼叫置於服務提供商的啓動方法中進行共享。您可以自由將它們添加到AppServiceProvider或生成一個單獨的服務提供程序來容納它們。

public function boot() 
{ 
    $data = App\Model::get(); 
    View::share('data', $data); 
} 

https://laravel.com/docs/5.4/views#sharing-data-with-all-views

對此可替代的解決方案是使用view composer

View::composer('layouts.footer_files', function ($view) { 
    .... 
});