【问题标题】:Laravel 5.4 master blade: show data from database in footerLaravel 5.4 master Blade:在页脚中显示数据库中的数据
【发布时间】:2017-06-09 16:06:21
【问题描述】:

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

【问题讨论】:

标签: php laravel laravel-5.3 laravel-blade


【解决方案1】:

有时,您可能需要与应用程序呈现的所有视图共享一条数据。您可以使用视图外观的 share 方法来执行此操作。通常,您应该在服务提供者的引导方法中调用共享。您可以随意将它们添加到 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) {
    ....
});

【讨论】:

    猜你喜欢
    • 2018-02-04
    • 2021-03-08
    • 2016-10-02
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多