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