whitecube / nova-page

Laravel Nova的静态页面内容管理

v0.3.7 2024-06-21 10:32 UTC

README

Maintainability Test Coverage

是否想过在不创建特定模型和迁移的情况下,将“关于”页面的静态内容作为可编辑字段暴露在您的应用程序管理中?使用此包,您可以轻松实现这一点。默认情况下,它将在应用程序的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,我们每天工作都使用大量的开源软件。因此,当我们有机会回馈时,我们非常兴奋!我们希望您会喜欢我们的小贡献,并且如果您在项目中发现它很有用,我们很愿意听到您的反馈