awjudd/layoutview

在Laravel 5中处理不同布局的快速简单方法。

1.3.0 2015-12-22 15:53 UTC

This package is auto-updated.

Last update: 2024-09-08 06:54:04 UTC


README

Build Status ProjectStatus

在Laravel 5中处理不同布局的快速简单方法

功能

  • 添加了根据所选布局自动选择视图的能力
  • 支持主布局和回退布局

快速开始

composer.json文件的require键中添加以下内容

"awjudd/layoutview": "1.2.*"

运行Composer更新命令

$ composer update

config/app.php中,将'Awjudd\Layoutview\LayoutviewServiceProvider'添加到$providers数组的末尾

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'Awjudd\Layoutview\LayoutviewServiceProvider',

),

'aliases' => array(

    'App'             => 'Illuminate\Support\Facades\App',
    'Artisan'         => 'Illuminate\Support\Facades\Artisan',
    ...
    'View'            => 'Awjudd\Layoutview\Facades\LayoutViewFacade',
),

设置

Layout View的设置很简单。你所需要做的就是更改别名数组中“视图”的映射,使其指向新的类型。

完成之后,接下来你需要配置你想要包含的命名空间以及正在渲染的视图的优先级。要发布配置,你可以执行以下操作

$ php artisan config:publish awjudd/layoutview

配置基本和回退布局有两种方法。以下是两种方法:

  • 在配置文件中,可以在配置文件中填写以下值
'layout' => array (

    /**
     * The layout that will be used to fall back on if the selected doesn't exist.
     * 
     * @var string
     */
    'fallback' => NULL,

    /**
     * The layout that will be the first choice to be used.
     * 
     * @var string
     */
    'selected' => NULL,
),
  • 在你的基本控制器中调用以下函数
View::setSelectedLayout('base layout name');
View::setFallbackLayout('fallback layout name');

配置

在配置文件中有一个单独的键。这个键是'namespaces'。在这个数组中填写任何你希望应用程序遍历的命名空间,以找到最合适的视图。

请注意 此数组中元素的添加顺序决定了扫描显示的顺序。因此,你将希望你的最具体的命名空间首先列出。

'namespaces' => array (
    /*
     * Should always keep a blank one here to search in no namespaces.
     */
    '',
),

文件夹结构

为了使这个包正常工作,它需要以下文件夹结构(简而言之,你的布局名称是顶级)。

./views
    ./base
        ./home
            ./index.blade.php
    ./fallback
        ./home
            ./index.blade.php
            ./test.blade.php
        ./layout
            ./html.blade.php

在这个例子中,“base”和“fallback”是你的两种可能的布局。如果你选择“base”作为布局,而“fallback”作为回退视图(这意味着如果主布局中没有,它将查找那里)。如果你这样做

View::make('home.index');

它将在'base/home/index'中渲染视图。然而,如果你做的一个不存在于基本文件夹中,那么它将自动选择回退视图。例如

View::make('home.test');

将渲染'fallback/home/test'。

许可证

Layout View是在MIT许可证下免费分发的软件

发行说明

1.1.0:

  • Laravel 4.2支持

1.1.1:

  • 移除了在命名空间中添加“::”的需要
  • 如果未指定基本/回退布局,它将忽略该文件夹

更多信息

如果有任何问题,请在此报告