novius/laravel-nova-news

Laravel Nova新闻和博客文章管理包

2.1.2 2024-09-05 12:15 UTC

This package is auto-updated.

Last update: 2024-09-05 12:16:20 UTC


README

Laravel Nova新闻

Novius CI

介绍

Laravel Nova包允许您在Laravel Nova管理面板中管理新闻帖子。
您将能够创建帖子、类别和标签。
您可以为帖子附加多个类别和标签。类别可以视为列表页面。

要求

  • PHP >= 8.2
  • Laravel Nova >= 4.0
  • Laravel >= 10.0

注意:以下说明适用于Laravel >= 10.0和PHP >= 8.2。如果您使用的是早期版本,请参阅旧版本的文档

安装

您可以通过composer安装此包

composer require novius/laravel-nova-news

NovaServiceProvidertools方法中注册工具

// app/Providers/NovaServiceProvider.php

public function tools()
{
    return [
        // ...
        new \Novius\LaravelNovaNews\LaravelNovaNews(),
    ];
}

使用以下命令运行迁移

php artisan migrate

配置

您可以使用以下命令可选地发布配置文件

php artisan vendor:publish --provider="Novius\LaravelNovaNews\LaravelNovaNewsServiceProvider" --tag="config"

这允许您定义路由名称和

这允许您

  • 定义路由名称及其参数
  • 覆盖资源或模型类
  • 定义使用的语言
// config/laravel-nova-news.php

return [
    // ...
    'resources' => [
        'post' => \App\Nova\Post::class,
    ],
];
// app/Nova/Post.php

namespace App\Nova;

use Laravel\Nova\Fields\Text;

class Post extends \Novius\LaravelNovaNews\Nova\NewsPost
{
    public function mainFields(): array
    {
        return [
            ...parent::mainFields(),

            Text::make('Subtitle'),
        ];
    }
}

前端内容

如果您想要预先生成的控制器和路由,可以运行以下命令

php artisan news-manager:publish-front {--without-categories} {--without-tags} 

此命令将路由附加到routes/web.php并创建一个新的App\Http\Controllers\FrontNewsController

然后您可以自定义您的路由和控制器。

在由控制器调用的视图中,使用laravel-meta的文档来实现元标签

资源

接下来,我们需要发布Laravel Nova Translatable包的资源。我们通过运行以下命令来完成此操作

php artisan vendor:publish --provider="Novius\LaravelNovaTranslatable\LaravelNovaTranslatableServiceProvider" --tag="public"

迁移和语言文件

如果您想自定义迁移或语言文件,可以使用以下命令发布它们

php artisan vendor:publish --provider="Novius\LaravelNovaNews\LaravelNovaNewsServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Novius\LaravelNovaNews\LaravelNovaNewsServiceProvider" --tag="lang"

测试

使用以下命令运行测试

composer test

代码检查

使用Laravel Pint进行代码检查

composer lint

许可证

此包受GNU Affero General Public License v3或(根据您的选择)任何后续版本的许可。