这个 Laravel 包为您的应用程序添加了多主题支持。它还提供了一个简单的身份验证脚手架,作为构建 Laravel 应用程序的起点。并且它还为 Bootstrap
、Tailwind
、Vue
和 React
提供了预设。因此,我相信它是 laravel/ui
和 laravel/breeze
包的一个很好的替代品。
功能
- 任意数量的主题
- 回退主题支持(WordPress 风格);它允许创建子主题来扩展任何主题
- 提供类似于
laravel/ui
和 laravel/breeze
的身份验证脚手架
- 导出所有认证控制器、测试和其他文件,类似于
laravel/breeze
- 为
Bootstrap
、Tailwind
、Vue 2
、Vue 3
和 React
提供前端预设
如果您不想使用此包的身份验证脚手架,而是想使用 Laravel Fortify,那也没问题。您可以将 Laravel Themer 与 Fortify 一起使用。Laravel Fortify 仅提供后端身份验证实现,不提供视图或前端预设。因此,您可以使用 Fortify 进行后端身份验证,并使用 Laravel Themer 来处理视图和预设。
教程
这是 Laravel Themer 教程 的视频教程。
安装与设置
您可以使用 composer 安装此包:
composer require qirolab/laravel-themer
发布配置文件:
php artisan vendor:publish --provider="Qirolab\Theme\ThemeServiceProvider" --tag="config"
创建主题
在终端中运行以下命令:
php artisan make:theme
此命令将要求您输入主题名称、CSS 框架、JS 框架以及可选的身份验证脚手架。

实用的主题方法:
// 设置活动主题
Theme::set('theme-name');
// 获取当前活动主题
Theme::active();
// 获取当前父主题
Theme::parent();
// 清除主题。这样就没有活动主题了
Theme::clear();
// 获取主题路径
Theme::path($path = 'views');
// 输出:
// /app-root-path/themes/active-theme/views
Theme::path($path = 'views', $themeName = 'admin');
// 输出:
// /app-root-path/themes/admin/views
Theme::getViewPaths();
// 输出:
// [
// '/app-root-path/themes/admin/views',
// '/app-root-path/resources/views'
// ]
用于设置主题的中间件
在 app\Http\Kernel.php
中注册 ThemeMiddleware
:
protected $routeMiddleware = [
// ...
'theme' => \Qirolab\Theme\Middleware\ThemeMiddleware::class,
];
中间件使用示例:
// 示例 1:为路由设置主题
Route::get('/dashboard', 'DashboardController@index')
->middleware('theme:dashboard-theme');
// 示例 2:为路由组设置主题
Route::group(['middleware'=>'theme:admin-theme'], function() {
// "admin-theme" 将应用于此处定义的所有路由
});
// 示例 3:设置子主题和父主题
Route::get('/dashboard', 'DashboardController@index')
->middleware('theme:child-theme,parent-theme');
资产编译
要编译主题资产,首先您需要在 package.json
文件的 scripts
部分添加以下行。
"scripts": {
...
"dev:theme-name": "vite --config themes/theme-name/vite.config.js",
"build:theme-name": "vite build --config themes/theme-name/vite.config.js"
}
现在,要编译特定主题,请运行以下命令:
npm run dev:theme-name
# 或
npm run build:theme-name
测试
composer test