Laravel 5.4主刀片:在页脚中显示来自数据库的数据

时间:2017-06-09 08:03:43

标签: php laravel laravel-5.3 laravel-blade

我创建了一个master.blade.php文件,如下所示:

<!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很容易。我可以直接从我的视图访问数据库吗?请帮忙。

1 个答案:

答案 0 :(得分:1)

  

有时,您可能需要与应用程序呈现的所有视图共享一段数据。您可以使用view facade的共享方法执行此操作。通常,您应该在服务提供商的引导方法中发出共享呼叫。您可以自由地将它们添加到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) {
    ....
});