我是Laravel的新手,需要在标题中将数据传递到导航栏。
这是我的页面
Main:
<div class="container">
<header>
@include('user.includes.header')
</header>
<main>
@yield('content')
</main>
<footer>
@include('user.includes.footer')
</footer>
</div>标题:
<div id="navigation">
<nav class="navbar navbar-default">
<ul class="nav navbar-nav navbar-left">
<li class="dropdown">
@foreach($categorias as $cat)
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" title="{{$cat->nome}}">
{{$cat->nome}}
<span class="caret"></span>
</a>
@endforeach
</li>
</ul>
</nav>
</div>IncludesController:
class IncludesController extends Controller
{
public function Header(){
$categorias = Categoria::all();
return compact('categorias');
}
}
}我想将数据从控制器传递到header。我尝试了以下方法:
Route::get('header', 'IncludesController@Header');
但是不起作用,并且使用以下路径:
Route::get('/', 'IncludesController@Header');
只显示所有想要的数据和HTML页面。
发布于 2016-01-20 01:10:30
在IncludesController中,你需要返回:
class IncludesController extends Controller
{
public function Header(){
$categorias = Categoria::all();
return view('main',compact('categorias');
}
}
}我希望你的main.blade.php文件直接在resources/views文件夹下。
这是未经测试的,但它可能会有所帮助。
发布于 2016-01-20 01:09:47
您应该从控制器返回内容视图,传递给该视图的数据是第二个参数。
return view('yourContentView', compact('categorias'));只要您的内容视图是@extends('main'),传递到您的内容视图的任何数据也将对您的页眉和页脚视图可用。
另一种解决方案是为页眉和页脚视图设置视图编写器。这将在每次加载这些视图时触发,并自动将数据注入到该视图中...
您可以在https://laravel.com/docs/5.2/views#view-composers上阅读有关视图编写器的文档
https://stackoverflow.com/questions/34882512
复制相似问题