shrestharikesh/laravel-media-manager

轻松在laravel中上传媒体

dev-main 2023-07-05 01:28 UTC

This package is auto-updated.

Last update: 2024-09-05 04:15:10 UTC


README

轻松将媒体与Eloquent模型关联

入门指南

安装包

  • composer require shrestharikesh/laravel-media-manager

运行迁移

  • php artisan migrate

使用方法

将包提供的特质应用于任何模型

use Shrestharikesh\LaravelMediaManager\HasMedia;

class Post extends Model
{
    use HasMedia;
    // Rest of your code
}

将任意数量的媒体关联到模型

$post = Post::create($data);
$post->addMedia($request->image);

或者只关联一个到模型的每个标签

$post->addMedia($request->image)->deletePrevious();

轻松上传媒体到不同的标签

$post->addMedia($request->featured_image)->withTag('featured');
$post->addMedia($request->thumbnail_image)->withTag('thumbnail')->withAltText('Featured Image');

轻松获取所有关联的媒体

$post = Post::find(1);
$post->getMedia($request->featured_image); // Returns medias from all topics
$post->getMedia($request->featured_image, 'default'); // Medias uploaded without any tag
$post->getMedia($request->featured_image, 'featured');

或者只获取一个

$post->getFirstMedia($request->featured_image);
$post->getFirstMedia($request->featured_image, 'featured');

轻松在blade文件中显示媒体

<img src="{{$featured_post->getFirstMedia('featured')?->url}}"/>

你即将删除模型并希望删除所有关联的媒体吗?

$post = Post::find(1);
$post->deleteMedia();
$post->delete();

或者只从特定主题中删除媒体

$post = Post::find(1);
$post->deleteMedia('featured');

或者只删除不再需要的媒体

$post->deleteSpecificMedia(1); // Pass the media id

哦,不!你发现bug了吗?请随意在GitHub上 创建问题,我们会尽快修复。

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。