2016-09-19 92 views
8

我的头部围绕laravels刀片布局困难重重。Laravel刀片 - 多种布局?

互联网上的所有示例和文档(例如laravel文档:https://laravel.com/docs/5.3/blade或youtube上的视频教程)仅使用一个master.blade.php作为布局。

对于更复杂的项目是否有最佳做法?

以下内容类型都包含在我的项目:

  • 产品
  • 类别
  • 博客
  • 分类
  • 行政
  • 登录/ AUTH

所有这些内容类型有不同的布局:

  • 不同的/没有侧边栏
  • 左/右
  • 不同的标题栏
  • 没有内容前/旗帜
  • 不同/无菜单
  • 不同/无面包屑

所以我不知道在什么情况下...

  1. 创建一个新的布局文件(例如, /views/layouts/product.blade.php),它在我的网页(与@extends在/views/pages/product.blade.php( “layouts.product”)延长)

...或...

  1. 只使用一个包含所有不同类型的布局文件,并将它们实现为每个类型的页面文件中的部分。

这一个现在让我疯狂,我找不到任何有价值的东西,比如是否使用布局的最佳做法。

非常感谢您的帮助!

+0

您可以使用非常一般的布局,然后使用一些'include'作为您的侧边栏和其他部分 – Hammerbot

回答

3

好的做法是扩展一些主布局,然后使用@include@each来包含侧边栏,页脚,页眉,横幅视图等。即使对于真正的大型项目,这也是完美的。有时你想使用@if运营商的条件包括:

@if (condition) 
    @include('some.view') 
@else 
    @include('another.view') 
@endif 
5

布局结构,可以很容易地变得一团糟,这就是为什么它在很大程度上建议保持在一个直观的文件夹结构组织布局和谐音。通过这样做,您将确保将来,当您的应用程序增长时,它将保持清洁和有组织。这也取决于你正在从事哪种项目。信不信由你,有时文件夹结构因项目而异。

据我所知,关于如何组织一个特定于Laravel的布局文件夹没有任何“最佳实践”,但这里是我如何组织我的项目的一个例子(并且已经为我所有的Laravel应用程序有):

views/ 
├── v1/ 
│ ├── master 
| | ├── master-public.blade.php 
| | ├── master-admin.blade.php 
| | ├── master-user.blade.php 
| ├── components 
| │ ├── navigation 
| | | ├── public.blade.php 
| | | ├── admin.blade.php 
| | | ├── user.blade.php 
| | ├── headers 
| | ├── footers 
| ├── views 
| | ├── home 
| | ├── chat 
| | ├── order 
| | ├── reports 
| ├── partials 
| | ├── ads.blade.php 
| | ├── sidebar.blade.php 
| ├── public 
| | ├── registration.blade.php 
| | ├── login.blade.php 
├── v2/ 
└── v2.2/ 

在这里提到的最重要的事情是,在我的观点目录创建每个每个我最终在我的应用程序路径的文件夹。

此外,我认为将父应用程序文件作为Web应用程序的UI版本很重要。有时候,重做用户界面时,往往只是将文件保存在相同的目录下,这不是一个好的长期目标,因为您最终会在同一个文件夹中为不同版本的网站提供大量文件。

希望这有助于!

干杯和祝你好运!

+0

真的很喜欢作为父文件夹的UI版本。一年后你还在做这件事吗? –

+2

@PierreLeBot在生产中,我仍然这样做。组织我的Blade视图的这种特殊方式对我们的用户界面测试和版本控制来说非常有用。如果我从头开始并想坚持这种结构,更好的方法是在我的Laravel项目中创建一个git子模块,它将包含我所有与UI相关的东西,并为每个版本提供一个git标签。这样,您无需在每个新版本中复制/粘贴大量文件,从而使您的应用程序体积更小。目前,我将所有观点转移到VueJS。希望这可以帮助! – idelara