outl1ne/nova-media-hub 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

outl1ne/nova-media-hub

最新稳定版本:3.0.1

Composer 安装命令:

composer require outl1ne/nova-media-hub

包简介

A Laravel Nova tool for managing media.

README 文档

README

Latest Version on Packagist Total Downloads

This Laravel Nova package allows you to manage media and media fields.

Requirements

  • php: >=8.2
  • laravel/nova: ^5.0

Other Versions

laravel/nova: ^4.0

Features

  • Media Hub UI in separate view
  • Media Hub field for selecting single/multiple media
  • Image optimization and multiple conversions support
  • File naming and path making customization
  • Dark mode support
  • A lot configuration options

Screenshots

Media Hub

Choose media

Installation

Install the package in a Laravel Nova project via Composer and run migrations:

# Install nova-media-hub composer require outl1ne/nova-media-hub # Run migrations php artisan migrate

Register the tool with Nova in the tools() method of the NovaServiceProvider:

// in app/Providers/NovaServiceProvider.php public function tools() { return [ // ... \Outl1ne\NovaMediaHub\MediaHub::make() // You can choose to hide the Tool from the sidebar ->hideFromMenu() // Optionally add additional fields to Media items ->withCustomFields( ['copyright' => __('Copyright')], overwrite: false ) ]; }

Usage

Fields

This package provides a field MediaHubField which allows you to select media. This saves the media as a JSON array into the database.

Example usage:

use Outl1ne\NovaMediaHub\Nova\Fields\MediaHubField; // ... MediaHubField::make('Media', 'media') ->defaultCollection('products') // Define the default collection the "Choose media" modal shows ->multiple(), // Define whether multiple media can be selected

Casting

The media column of models can be automatically cast as a Collection of Media models:

class Product extends Model { protected $casts = [ 'media' => \Outl1ne\NovaMediaHub\Casts\MediaCast::class, ]; }
 $cover = Product::first()->media->first(); // ... $urls = Product::first()->media->pluck('url'); // ... $collection = Product::first()->media->where('collection_name', 'Details');

Configure

The config file can be published using the following command:

php artisan vendor:publish --provider="Outl1ne\NovaMediaHub\MediaHubServiceProvider" --tag="config"

Custom optimizer chain

You can define a custom optimizer chain or add items to it like so:

// in app/Providers/AppServiceProvided.php public function register() { // ... // https://github.com/spatie/image-optimizer#creating-your-own-optimization-chains \Outl1ne\NovaMediaHub\MediaHub::withOptimizerChain( (new OptimizerChain) ->addOptimizer(new Jpegoptim([ '--strip-all', '--all-progressive', ])) ->addOptimizer(new Pngquant([ '--force', ])) ); }

Localization

The translation file(s) can be published by using the following command:

php artisan vendor:publish --provider="Outl1ne\NovaMediaHub\MediaHubServiceProvider" --tag="translations"

Credits

License

Nova Media Hub is open-sourced software licensed under the MIT license.

统计信息

  • 总下载量: 48.35k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 47
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 1

GitHub 信息

  • Stars: 47
  • Watchers: 3
  • Forks: 27
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固