larabra/laravel-media-library-input

HTML input for Spatie Media Library

v1.2.0 2021-10-15 14:18 UTC

This package is auto-updated.

Last update: 2024-05-15 20:06:25 UTC


README

Latest Version on Packagist Total Downloads Build Status StyleCI

This is where your description should go. Take a look at contributing.md to see a to do list.

Installation

Via Composer

$ composer require larabra/laravel-media-library-input

Usage

Model

// app\Model\News.php
namespace App\Models;

use Illuminate\Database\Eloquent\Model as Model;
use Larabra\LaravelMediaLibraryInput\Casts\MediaCastAttribute; // <---
use Larabra\LaravelMediaLibraryInput\Models\MediableModel; // <---
use Spatie\MediaLibrary\HasMedia;

class News extends Model implements HasMedia
{
    use InteractsWithMedia;
    use MediableModel; // <--- create/add medias with form submit

    // "cover" is a fake field, so add it as append and create its cast

    protected $appends = [
        'cover',
    ];

    protected $casts = [
        'cover' => MediaCastAttribute::class,
    ];
    // ...
}

Controller

// app\Http\Controllers\NewsController.php
<?php

namespace App\Http\Controllers;

use App\Repositories\NewsRepository;
use Larabra\LaravelMediaLibraryInput\Http\Controllers\MediableController;

class NewsController extends AppBaseController
{
    use MediableController; // <--- add controller methods to manager medias

    /** @var  NewsRepository */
    private $newsRepositorysitory;

    public function __construct(NewsRepository $newsRepository)
    {
        $this->newsRepository = $newsRepository;
    }

Views

{!! Form::label('cover', 'Capas:') !!}
{!! Form::medias('cover', ['multiple' => true]) !!}

Change log

Please see the changelog for more information on what has changed recently.

Testing

$ composer test

Contributing

Please see contributing.md for details and a todolist.

Security

If you discover any security related issues, please email author email instead of using the issue tracker.

Credits

License

MIT. Please see the license file for more information.