pvtl/voyager-frontend

此包已被放弃,不再维护。未建议替代包。

缺失的 Laravel 管理后台前端。

安装: 51,290

依赖者: 5

建议者: 0

安全: 0

星标: 208

关注者: 24

分支: 79

1.0.2 2020-11-02 01:20 UTC

README

此仓库不再积极维护

Voyager 前端

Voyager Frontend Screenshot

缺失的 Laravel 管理后台前端。

Laravel包为Voyager项目添加前端视图、路由和资源。

它包含前端布局的基本结构(例如,页眉、页脚等)和Foundation框架的主题资源。

Pivotal Agency构建。

先决条件

  • PHP >= 7.1.3
    • PHP 扩展 sqlite3(用于 teamtnt/tntsearch 所需)
  • Node & NPM
  • Composer
  • Laravel 需求

安装

1. 安装 Laravel + Voyager (将 $VARs 替换为您自己的值)

# 1.0 Install Laravel
composer create-project --prefer-dist laravel/laravel $DIR_NAME

# 1.1 Require Voyager
cd $DIR_NAME && composer require tcg/voyager

# 1.2 Copy .env.example to .env and update the DB & App URL config
cp .env.example .env

# 1.3 Generate a Laravel key
php artisan key:generate

# 1.4 Install Laravel frontend - Only on Laravel 7+
php artisan ui bootstrap --auth

# 1.5 Run the Voyager Installer
php artisan voyager:install

# 1.6 Create a Voyager Admin User
php artisan voyager:admin $YOUR_EMAIL --create

2. 安装 Voyager 前端

# 2.0 Require this Package in your fresh Laravel/Voyager project
composer require pvtl/voyager-frontend

# 2.1 Run the Installer
composer dump-autoload && php artisan voyager-frontend:install

# 2.3 Build the front-end theme assets
npm install
npm run dev

# 2.4 Set the Laravel search driver in your .env
echo "SCOUT_DRIVER=tntsearch" >> .env

有任何问题?请参阅以下故障排除部分

有 Cron 吗?

这是一个提醒您在您的服务器上设置标准的 Laravel Cron。Voyager 前端包有一些计划任务,因此依赖于 Cron 运行。

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1

主题开发

SCSS & JS

当您准备好开始为前端添加样式时,您可以在更新 SCSS 和/或 JS 文件后使用以下命令

命令 描述
npm run watch 监视 /resources/assets 中的任何更改并立即构建
npm run dev 按需构建 SCSS/JS
npm run prod 按需构建 SCSS/JS,但这次输出的是压缩后的结果

覆盖视图

假设您想更新前端页眉的布局

  1. 创建目录 resources/views/vendor/voyager-frontend
    • 您放置在这里的任何文件都将替换此包中包含的默认视图
  2. vendor/pvtl/voyager-frontend/resources/views/(在本例中,为 partials/header.blade.php)复制相应的文件到匹配的文件结构并更新

因此现在您将拥有

    /resources
        /views
            /vendor
                /voyager-frontend
                    /partials
                        /header.blade.php

header.blade.php 的任何更改都会自动反映在网站上。

缩略图/图像调整大小

此包包含自动图像调整大小的功能。当您在前端 blade 模板中引用图像时,只需调用类似以下的内容

{{ imageUrl($pathToImage, $width, $height, $config = ['crop' => false, 'quality' => 100] ) ?: '/default.png' }}

<!-- For example for a 300px wide thumbnail scaled down (i.e. no cropping) -->
<img src="{{ imageUrl($blockData->image, 300, null, ['crop' => false]) ?: '/default.png' }}" />

<!-- Or a 200px by 100px cropped thumbnail -->
<img src="{{ imageUrl($blockData->image, 200, 100) ?: '/default.png' }}" />

使用CDN存储图片

此功能将输出一个绝对URL,其中主机名为APP_URL,但是您可以在.env文件中添加一个ASSET_URL变量来使用不同的主机名。

搜索

生成索引

此模块包含一个计划任务以重新生成索引,一旦您为Laravel设置了任务,它将自动运行。如果您需要测试和重新生成搜索索引,可以手动运行命令php artisan voyager-frontend:generate-search-indices

配置搜索(使用Laravel Scout)

默认情况下,此模块在您在.env文件中定义以下变量后,会自动包含“搜索”的“页面”和“文章”模型 - 查看Laravel Scout文档

SCOUT_DRIVER=tntsearch

但是,您可以扩展并定义自己的“可搜索”模型以包含在搜索结果中,通过将这些模型附加到“可搜索”特征来实现。

class Page extends Model
{
    use Searchable;

    public $asYouType = false;

    /**
     * Get the indexed data array for the model.
     * @return array
     */
    public function toSearchableArray()
    {
        $array = $this->toArray();

        // customise the searchable array
        
        return $array
    }
}

然后,您将能够挂钩到搜索配置并将您的“可搜索”模型合并到配置键中(最好使用服务提供者):scout.tntsearch.searchableModels

$this->mergeConfigFrom(self::PACKAGE_DIR . 'path/to/config/scout.php', 'scout.tntsearch.searchableModels');

您的配置文件应包含类似于此模块的scout.php配置中的值

<?php

return [
    '\My\Searchable\Models\Namespace',
];

测试

您可以通过切换到包目录并运行通过composer脚本的测试来测试Pvtl/Test包

  cd packages/pivotal/test;
  composer run test

故障排除

错误:类VoyagerFrontendDatabaseSeeder不存在

只需再次运行php artisan voyager-frontend:install即可。

错误:命令 "npm i ..." 失败。

运行npm install然后再次尝试运行php artisan voyager-frontend:install