aon2003 / laravel-page-titles
一个简单的包,使在Laravel应用程序中设置页面标题变得更加容易。
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-10-01 00:09:09 UTC
README
这个简单的包只有一个目的:将设置页面标题的工作压缩到一个文件中。
它通过中间件在所有blade模板和视图中提供全局变量 $page_title
。
支持我们
安装
您可以通过composer安装此包
composer require aon2003/laravel-page-titles
接下来,您需要发布一个配置文件和一个语言文件
php artisan vendor:publish --tag="laravel-page-titles"
最后,您需要将自定义中间件添加到您的 app/Http/Kernel.php
文件中,将其添加到您的Web中间件组中。
'web' => [ ... \Aon2003\PageTitles\Middleware\PageTitles::class, ],
用法
为了使库正常工作,您所有的路由都必须有名称。安装后,全局变量 $page_title
将在所有blade组件中可用。它将包含当前路由的名称,这将用于匹配您在翻译文件 lang/en/page_titles.php
中配置的标题。
默认情况下,page_titles.php
文件只包含两个针对路由名称 'index' 和 'home' 的默认页面标题。
return [ 'index' => env('APP_NAME', 'Home Page'), 'home' => env('APP_NAME', 'Home Page'), ];
您可以通过在此文件中添加行来添加自定义标题
return [ ... '{route_name}' => '{page_title}', ];
然后,在您的blade文件中,您应该添加以下行以便显示标题
<title>{{ __($page_title) }}</title>
带变量的页面标题
如果您希望能够在页面标题中传递变量,您应该将它们作为数组传递给视图,在语言文件中的标题中添加编号占位符,并更改blade文件中的 <title>
标签
page_titles.php
:
return [ ... 'index' => 'Hello, :0!', ];
控制器
:
function index() { $page_props = ['Alex']; return view('{page}', compact('page_props')); }
{page}.blade.php
:
<title>{{ __($page_title, $page_params ?? []) }}</title>
生成的页面标题应为: Hello, Alex!
翻译文件名
如果您想使用不同的翻译文件名,您需要重命名翻译文件,并将 page_titles.php
配置文件中的 translation_file_name
变量更改为您要使用的文件名。
page_titles.php
:
return [ /* |-------------------------------------------------------------------------- | Translation File Name |-------------------------------------------------------------------------- | | Used to find the page titles translations. | If you change the translation file name, you MUST change this variable, too! | */ 'translation_file_name' => 'page-titles', ];
国际化
如果您的项目支持国际化,您只需在 lang
文件夹中添加更多的 {language_code}/page_title.php
文件即可。有关更多信息,请参阅官方的 Laravel 文档。
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件。