awjudd / layoutview
在Laravel 5中处理不同布局的快速简单方法。
Requires
- php: >=5.4.0
- illuminate/support: ~5
This package is auto-updated.
Last update: 2024-09-08 06:54:04 UTC
README
在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:
- 移除了在命名空间中添加“::”的需要
- 如果未指定基本/回退布局,它将忽略该文件夹
更多信息
如果有任何问题,请在此报告