我有一个包含各种包含的样板,一个是:
@include('nav')
我想对我网站的CMS使用相同的样板,但使用不同的导航。
当用户使用CMS时,使样板板包含不同导航的最佳方法是什么:
@include('nav-cms')
答案 0 :(得分:0)
这更像是一个架构问题,答案是你可以通过很多方式做到这一点。但是,答案可能是Laravel特有的,所以这里是:
一种方法是将include语句更改为:
@include($navView)
然后在您的控制器中或使用视图编辑器,您应该适当地设置该变量。
或者,您可以使用以下部分来执行此操作:
// layout.blade.php
<html>
<head></head>
<body>
@section('nav')
@include('nav')
@show
@yield('content')
</body>
</html>
// some-frontend-view.blade.php
@extends('layout')
@section('content')
Content here
@stop
// some-cms-view.blade.php
@extends('layout')
@section('nav')
@include('nav-cms')
@overwrite
@section('content')
CMS content here
@stop
这样它就会假定前端导航,然后在CMS中为CMS导航覆盖它。或者,您可以使用@yield,而不是在布局中默认为“nav”,并在some-frontend-view.blade.php
文件中将其指定为some-cms-view.blade.php
文件。