whitecube / nova-page
Laravel Nova的静态页面内容管理
Requires
- php: ^7.3|^8.0
- laravel/nova: ^4.0
Requires (Dev)
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.0
- dev-master
- v0.3.7
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- 0.1.2
- 0.1.1
- v0.1.0
- dev-add-preventsAccessingMissingAttributes-method
- dev-dependabot/npm_and_yarn/webpack-5.76.1
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-nova-4
This package is auto-updated.
Last update: 2024-09-21 11:01:15 UTC
README
是否想过在不创建特定模型和迁移的情况下,将“关于”页面的静态内容作为可编辑字段暴露在您的应用程序管理中?使用此包,您可以轻松实现这一点。默认情况下,它将在应用程序的resources/lang
目录中存储内容,以便进行版本控制。数据库源也可用。
此包通过使用模板配置,轻松地将基本平面文件CMS功能添加到Laravel Nova中,就像它是一个可管理的Laravel模型一样,这意味着它可以使用所有可用的Laravel Nova字段和工具。
快速入门
以下是一个非常简化的指南,帮助您尽快开始。有关更多详细信息、示例和高级功能,请参阅完整文档。
安装
composer require whitecube/nova-page
然后在app/Providers/NovaServiceProvider.php
中注册Nova工具
public function tools() { return [ \Whitecube\NovaPage\NovaPageTool::make(), ]; }
使用
为了将字段(甚至卡片!)分配给页面的编辑表单,我们需要创建一个Template
类,并在一个或多个路由上注册此类。您会看到的,这相当简单。
创建模板
php artisan make:template About
namespace App\Nova\Templates; use Illuminate\Http\Request; use Laravel\Nova\Fields\Text; use Whitecube\NovaPage\Pages\Template; class About extends Template { /** * Get the fields displayed by the resource. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @return array */ public function fields(NovaRequest $request) { return [ Text::make('Title of the page', 'title') ]; } /** * Get the cards available for the request. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @return array */ public function cards(NovaRequest $request) { return []; } }
Route::get('/about-me', 'AboutController@show') ->template(\App\Nova\Templates\About::class) ->name('about');
字段和卡片定义与常规Laravel Nova资源相同。
在您的页面中加载数据
最简单的方法是使用中间件。
在App\Http\Kernel
文件中
protected $middlewareGroups = [ 'web' => [ 'loadNovaPage', ], }; // ... protected $routeMiddleware = [ 'loadNovaPage' => \Whitecube\NovaPage\Http\Middleware\LoadPageForCurrentRoute::class, ];
在您的视图中访问数据
使用get
指令或使用Page
外观,可以在您的应用程序的blade模板中检索页面的静态值。
<p>@get('title')</p> // or <p>{{ Page::get('title') }}</p>
请注意,还可以定义选项模板以处理重复数据,您可以使用以下方式访问
<p>@option('footer.copyright')</p> // or <p>{{ Page::option('footer')->copyright }}</p>
💖 赞助
如果您在生产应用程序中依赖此包,请考虑赞助我们!这是帮助我们继续我们热爱的事情的最好方式:制作出色的开源软件。
贡献
请随意提出更改建议、请求新功能或自行修复错误。我们相信还有许多改进可以做出,并且我们非常愿意合并有用的拉取请求。
谢谢!
用❤️为开源制作
在Whitecube,我们每天工作都使用大量的开源软件。因此,当我们有机会回馈时,我们非常兴奋!我们希望您会喜欢我们的小贡献,并且如果您在项目中发现它很有用,我们很愿意听到您的反馈。