Laravel刀片 - 多种布局?

时间:2016-09-19 12:07:28

标签: laravel layout

我很难看到laravels刀片布局。

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

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

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

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

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

  • 不同/没有侧边栏
  • 左/右侧边栏
  • 不同的标题
  • no / banner before content
  • 不同/没有菜单
  • 不同/没有面包屑

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

  1. 创建一个新的布局文件(例如/views/layouts/product.blade.php)并在我的页面中扩展(在/views/pages/product.blade.php中使用@extends(“layouts.product”))
  2. ......或......

    1. 只使用一个包含所有不同类型的布局文件,并将它们作为每种类型的页面文件中的部分实现。
    2. 这个让我疯狂的现在,我找不到任何有价值的东西,比如最好的做法,或者不使用布局。

      非常感谢你的帮助!

2 个答案:

答案 0 :(得分: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/

这里最重要的一点是,在我的views目录中,我为每个路径创建了一个文件夹,我最终在我的应用程序中。

此外,我认为将父文件夹作为webapp的UI版本非常重要。有时候,当重做UI时,往往只是将文件保存在相同的目录下,这不是很好的长期,因为你最终会在同一个文件夹中为你站点的不同版本提供大量文件。

希望这有帮助!

干杯,祝你好运!

答案 1 :(得分:3)

良好的做法是扩展一些主布局,然后使用@include@each来包括侧边栏,页脚,标题,横幅视图等。即使对于非常大的项目,这也非常有效。有时您希望将@if运算符用于条件包括:

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