我是Laravel的新手,需要将数据传递到标题中的导航栏。
这是我的网页
主:
<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');
}
}
}
我想将数据从Controller传递到标头。 我试过这条路:
Route::get('header', 'IncludesController@Header');
但无法使用此路线:
Route::get('/', 'IncludesController@Header');
仅显示数据,o想要所有HTML页面。
答案 0 :(得分:1)
在IncludesController中你需要返回:
class IncludesController extends Controller
{
public function Header(){
$categorias = Categoria::all();
return view('main',compact('categorias');
}
}
}
我希望你的main.blade.php文件直接在resources / views文件夹下。
这是未经测试但可能有帮助......
答案 1 :(得分:0)
您应该从控制器返回内容视图,传递给该视图的数据是第二个参数。
return view('yourContentView', compact('categorias'));
只要您的内容视图@extends('main')
,传递到您的内容视图的所有数据也都可用于页眉和页脚视图。
另一种解决方案是为页眉和页脚视图设置视图编辑器。每次加载这些视图时都会触发,并自动将数据注入该视图......
阅读有关视图作曲家的文档