PHPackages                             ferdiunal/laravel-nova-media-field - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. ferdiunal/laravel-nova-media-field

ActiveLibrary[Image &amp; Media](/categories/media)

ferdiunal/laravel-nova-media-field
==================================

A Laravel Nova media field for Spatie's media library

v1.0.7(1y ago)131211MITPHPPHP ^8.2

Since Jun 27Pushed 1y agoCompare

[ Source](https://github.com/ferdiunal/laravel-nova-media-field)[ Packagist](https://packagist.org/packages/ferdiunal/laravel-nova-media-field)[ Fund](https://buymeacoffee.com/ferdiunal)[ GitHub Sponsors](https://github.com/sponsors/ferdiunal)[ RSS](/packages/ferdiunal-laravel-nova-media-field/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (8)Dependencies (6)Versions (9)Used By (0)

Laravel Nova Media Field (WIP)
==============================

[](#laravel-nova-media-field-wip)

**Laravel Nova Media Field** is a component designed to integrate seamlessly with Spatie's Media Library, allowing for efficient media file management within Laravel Nova. This package makes it easy to upload, list, and edit media files directly from your Nova dashboard.

Features:
---------

[](#features)

- Easy media file upload
- Previews and edits
- Comprehensive media management

This component enhances the media management experience in Nova, offering a simple yet customizable solution for developers.

Install
-------

[](#install)

```
composer require ferdiunal/laravel-nova-media-field
```

Usage
-----

[](#usage)

```
/**
 * Get the fields displayed by the resource.
 *
 * @return array
 */
public function fields(NovaRequest $request)
{
    return [
        ID::make()->sortable(),
        MediaField::make('Logo', 'logo')
          ->required()
          ->multiple()
          ->vapor()
          ->withResponsive()
          ->validate(
                minSize: 30, // The allowed extensions for the file.
                maxSize: 1024 * 50, // The allowed mime types for the file.
                size: 1024 * 50, // The minimum size of the file.
                image: false, // The maximum size of the file.
                video: false, // The size of the file.
                audio: false, // Whether to allow only image files.
                document: false, // Whether to allow only video files.
                pdf: false, // Whether to allow only audio files.
                txt: false, // Whether to allow only document files.
                json: false, // Whether to allow only PDF files.
                csv: false, // Whether to allow only text files.
                xlsx: false, // Whether to allow only JSON files.
                docx: false, // Whether to allow only CSV files.
                creation: false, // Whether to allow only XLSX files.
                update: false, // Whether to allow only DOCX files.
                default: false, // Whether to apply the rules for creation.
                allowedExtensions: [], // Whether to apply the rules for update.
                allowedMimeTypes: [] // Whether to apply the rules as default.
            )
    ];
}
```

Screenshots
-----------

[](#screenshots)

[![](./pictures/SCR-20240627-mdrz.png)](./pictures/SCR-20240627-mdrz.png)

[![](./pictures/SCR-20240627-mdtu.png)](./pictures/SCR-20240627-mdtu.png)

[![](./pictures/SCR-20240627-mdxj.png)](./pictures/SCR-20240627-mdxj.png)

[![](./pictures/SCR-20240627-meab.png)](./pictures/SCR-20240627-meab.png)

[![](./pictures/SCR-20240627-mebx.png)](./pictures/SCR-20240627-mebx.png)

[![](./pictures/SCR-20240627-meie.png)](./pictures/SCR-20240627-meie.png)

[![](./pictures/SCR-20240627-meke.png)](./pictures/SCR-20240627-meke.png)

[![](./pictures/SCR-20240627-mffm.png)](./pictures/SCR-20240627-mffm.png)

[![](./pictures/SCR-20240627-mfhq.png)](./pictures/SCR-20240627-mfhq.png)

[![](./pictures/SCR-20240627-mfpi.png)](./pictures/SCR-20240627-mfpi.png)

[![](./pictures/SCR-20240627-mhsm.png)](./pictures/SCR-20240627-mhsm.png)

[![](./pictures/SCR-20240627-mhvj.png)](./pictures/SCR-20240627-mhvj.png)

[![](./pictures/SCR-20240627-mieo.png)](./pictures/SCR-20240627-mieo.png)

[![](./pictures/SCR-20240627-miig.png)](./pictures/SCR-20240627-miig.png)

[![](./pictures/SCR-20240627-mijz.png)](./pictures/SCR-20240627-mijz.png)

[![](./pictures/SCR-20240627-miqd.png)](./pictures/SCR-20240627-miqd.png)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance35

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~11 days

Recently: every ~17 days

Total

8

Last Release

604d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/51f5bc45a8653e16229499476a51988197350c7648ec3b961c62c45cc92d8872?d=identicon)[ferdiunal](/maintainers/ferdiunal)

---

Top Contributors

[![ferdiunal](https://avatars.githubusercontent.com/u/5059851?v=4)](https://github.com/ferdiunal "ferdiunal (18 commits)")[![wamesro](https://avatars.githubusercontent.com/u/5340873?v=4)](https://github.com/wamesro "wamesro (2 commits)")

---

Tags

laravellaravel-novalaravel-nova-fieldspatie-laravel-medialibraryspatielaravelmedianovamedialibrarynova-media-field

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/ferdiunal-laravel-nova-media-field/health.svg)

```
[![Health](https://phpackages.com/badges/ferdiunal-laravel-nova-media-field/health.svg)](https://phpackages.com/packages/ferdiunal-laravel-nova-media-field)
```

###  Alternatives

[tomatophp/filament-media-manager

Manage your media files using spatie media library with easy to use GUI for FilamentPHP

14543.9k3](/packages/tomatophp-filament-media-manager)[classic-o/nova-media-library

Tool and field that will let you managing files and add them to the posts

154172.0k](/packages/classic-o-nova-media-library)[silvanite/nova-field-cloudinary

A Laravel Nova Image Field with Flysystem Adapter for storing and retrieving media from Cloudinary

2772.0k3](/packages/silvanite-nova-field-cloudinary)[stepanenko3/nova-media-field

A Laravel Nova field for laravel-medilibrary.

1717.5k](/packages/stepanenko3-nova-media-field)[mostafaznv/nova-video

Video Field for Laravel Nova

22398.0k1](/packages/mostafaznv-nova-video)[okipa/laravel-medialibrary-ext

Extra features for spatie/laravel-medialibrary package.

1011.2k](/packages/okipa-laravel-medialibrary-ext)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
