0
我已經有一個不同的樣板包括,一個是:使用包括在不同情況下
@include('nav')
我想用相同的樣板爲我的網站的CMS,但使用不同的導航。
會是什麼讓樣板包括當用戶使用CMS不同的導航的最佳方式:
@include('nav-cms')
我已經有一個不同的樣板包括,一個是:使用包括在不同情況下
@include('nav')
我想用相同的樣板爲我的網站的CMS,但使用不同的導航。
會是什麼讓樣板包括當用戶使用CMS不同的導航的最佳方式:
@include('nav-cms')
這更多的是一個建築的問題,答案是,你也許可以做很多很多的方法。然而,問題的答案可以Laravel特定的,所以這裏有雲:
一種方法是改變include語句是:
@include($navView)
,然後要麼在你的控制器,或使用View Composer,您應該適當地設置該變量。
另外,也可以使用部分做到這一點:
// 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-cms-view.blade.php
文件中所示。
謝謝,一個很好的答案。我決定現在爲CMS創建一個單獨的樣板。我只是想知道,你知道如何命名空間的意見。例如,在我的視圖中,我現在有一個名爲CMS的文件夾,裏面是CMS的樣板。樣板文件夾中還存在樣板文件。當我擴展每個CMS模板時:@extends('boilerplate'),是否有一種簡單的方法來指定使用哪種樣板文件? – panthro
或者只是放入@extends('cms/boilerplate'),還是有更好的方法? – panthro
你使用點,但否則是隻是按照目錄結構。我認爲Laravel將軍的慣例是保持小寫,但我想你可以按照你的意願去做。 – alexrussell