kakhura/laravel-galleriable

此包用于创建具有媒体画廊的模块

1.0.1 2020-12-05 15:12 UTC

This package is auto-updated.

Last update: 2024-09-05 23:04:59 UTC


README

此包用于创建具有媒体画廊的模块。

文档

安装

通过执行以下命令将包添加到您的composer.json中。

composer require kakhura/laravel-galleriable

对于5.5版本之前的Laravel或未使用自动发现,请在config/app.php中注册服务提供者。

'providers' => [
    /*
     * Package Service Providers...
     */
    \Kakhura\Galleriable\GalleriableServiceProvider::class,
],

配置

如果您想更改默认配置,您必须通过在控制台中运行以下命令将默认配置文件发布到您的项目。

php artisan vendor:publish --tag=kakhura-galleriable-config

此命令将文件[/vendor/kakhura/laravel-galleriable/config/kakhura.galleriable.php]复制到[/config/kakhura.galleriable.php]

默认的kakhura.galleriable.php看起来像这样

return [
    /**
     * Use soft deletes into models and database.
     */
    'use_soft_deletes' => true,
];

此命令将文件[/vendor/kakhura/laravel-galleriable/resources/views]复制到[/resources/views/vendor/admin/galleriable]

迁移

发布配置后,您必须通过在控制台中运行以下命令发布迁移

php artisan vendor:publish --tag=kakhura-galleriable-migrations

此命令将文件[/vendor/kakhura/laravel-galleriable/database/migrations]复制到[/database/migrations]

发布迁移后,您必须在您想要具有画廊功能的模型中添加HasGallery特质。

use Kakhura\Galleriable\Traits\Models\HasGallery;

class Post extends Model
{
    use HasGallery;
}

您必须在所有创建模型的函数中同步Gallery,例如这样

use Models\Post;

class PostService extends Service
{
    public fucntion create(array $data) 
    {
        ...
        $post = Post::create($data);
        $images = [];
        foreach (Arr::get($data, 'images') as $key => $image) {
            $file = Helper::uploadFile($data, $fileType);
            $images[] = [
                'image_id' => $file->id,
                'sort_index' => $key,
            ];
        }
        $post->syncGallery($images);
        ...
    }
}

Enjoy.