daltonmccleery/laravel-quick-start

此包已被废弃且不再维护。未建议替代包。

快速启动包,用于使用预定义的Laravel结构快速启动

v0.1.2 2022-01-31 18:24 UTC

README

要求

此包依赖于以下一些第三方Laravel Nova包,如下所示,因此您必须在安装此包之前安装并配置Nova。

安装

通过Composer安装此包

composer require daltonmccleery/laravel-quick-start

将所有包资源发布到您的应用程序

php artisan vendor:publish --provider="DaltonMcCleery\LaravelQuickStart\LaravelQuickStartServiceProvider" --force

然后,运行新的迁移

php artisan migrate

Laravel Nova

更新您的NovaServiceProvider以包含以下更改

/**
 * Register the application's Nova resources.
 *
 * @return void
*/
protected function resources()
{
    Nova::resourcesIn(app_path('Nova'));

    Nova::resources([
        \DaltonMcCleery\LaravelQuickStart\Nova\Page::class,
        \DaltonMcCleery\LaravelQuickStart\Nova\Redirect::class,
        \DaltonMcCleery\LaravelQuickStart\Nova\MainNavMenu::class,
        \DaltonMcCleery\LaravelQuickStart\Nova\BannerPromos::class,
        \DaltonMcCleery\LaravelQuickStart\Nova\MobileNavMenu::class,
        \DaltonMcCleery\LaravelQuickStart\Nova\FooterNavMenu::class,
        \DaltonMcCleery\LaravelQuickStart\Nova\ReusableBlocks::class
    ]);
}

重定向

更新您的Http/Kernal.php,在$middleware数组中添加以下行作为最后一项

protected $middleware = [
    // ...
    \DaltonMcCleery\LaravelQuickStart\Http\Middleware\RedirectRequests::class,
];

模型修订版

要包含变更的历史记录,将以下特性添加到您的模型中

use DaltonMcCleery\LaravelQuickStart\Traits\HasModelRevisions;

class YourModel extends Model
{
    use HasModelRevisions;

如果您正在使用Nova,您需要更新模型的boot方法如下

use DaltonMcCleery\LaravelQuickStart\Traits\HasModelRevisions;

class YourModel extends Model
{

    /**
     * The "booted" method of the model.
     *
     * @return void
     */
    protected static function booted()
    {
        static::updating(function ($model) {
            if ($model->create_new_revision) {
                $model = self::create_static_revision($model);
            }
        });
    }

接下来,在模型的Nova资源中添加一个复选框字段,如下所示

Boolean::make('Create New Revision', 'create_new_revision')
    ->trueValue(1)
    ->falseValue(0)
    ->hideFromDetail()->hideFromIndex()->hideWhenCreating()
    ->help('Create a new revision upon saving that can be reverted to at any time.')
    ->rules('nullable')

最后,您可以为模型的资源添加一个Nova动作以回滚到特定修订版

use DaltonMcCleery\LaravelQuickStart\Nova\Actions\RevertRevision;

public function actions(Request $request)
{
    return [
        new RevertRevision($request->resourceId, $this)
    ];
}

现在,您可以通过静态(通过静态模型闭包)或非静态方式创建新的修订版

self::create_static_revision($model);

$this->create_revision($model);

您也可以回滚到最后一个修订版,或者指定修订版的ID

$model->revert_last_revision();

$model->revert_to_revision(1);

路由

默认情况下,该包将自动加载通配符路由,这将覆盖您的应用在web.php文件中的路由。您可以通过发布的配置文件禁用自动路由,并通过在RouteServiceProvider的boot方法中添加以下行手动加载路由

Route::middleware('web')
    ->namespace($this->namespace)
    ->group(base_path('routes/web.php'));

// Add...
\DaltonMcCleery\LaravelQuickStart\LaravelQuickStartServiceProvider::registerRoutes();

构建工具

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。