webpress / media-manager
Requires
- spatie/laravel-medialibrary: 7.19.5
- webpress/core: ^3.1
Requires (Dev)
- orchestra/testbench: 5.0.0
- dev-master
- 3.1.87
- 3.1.86
- 3.1.85
- 3.1.83
- 3.1.82
- 3.1.81
- 3.1.80
- 3.1.79
- 3.1.78
- 3.1.77
- 3.1.76
- 3.1.74
- 3.1.73
- 3.1.72
- 3.1.71
- 3.1.70
- 3.1.69
- 3.1.68
- 3.1.67
- 3.1.66
- 3.1.65
- 3.1.64
- 3.1.63
- 3.1.61
- 3.1.60
- 3.1.59
- 3.1.58
- 3.1.57
- 3.1.56
- 3.1.54
- 3.1.53
- 3.1.52
- 3.1.51
- 3.1.50
- 3.1.49
- 3.1.48
- 3.1.47
- 3.1.46
- 3.1.45
- 3.1.44
- 3.1.43
- 3.1.42
- 3.1.41
- 3.1.40
- 3.1.39
- 3.1.38
- 3.1.37
- 3.1.36
- 3.1.35
- 3.1.34
- 3.1.33
- 3.1.32
- 3.1.31
- 3.1.30
- 3.1.29
- 3.1.28
- 3.1.27
- 3.1.26
- 3.1.25
- 3.1.24
- 3.1.23
- 3.1.22
- 3.1.20
- 3.1.19
- 3.1.18
- 3.1.17
- 3.1.15
- 3.1.14
- 3.1.13
- 3.1.12
- 3.1.11
- 3.1.10
- 3.1.9
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.34
- 3.0.33
- 3.0.32
- 3.0.31
- 3.0.30
- 3.0.29
- 3.0.28
- 3.0.27
- 3.0.26
- 3.0.25
- 3.0.24
- 3.0.23
- 3.0.22
- 3.0.21
- 3.0.20
- 3.0.19
- 3.0.18
- 3.0.17
- 3.0.16
- 3.0.15
- 3.0.14
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.6
- 3.0.5
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.1.1
- 2.1.0
- 2.0.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.1
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.19.0
- 0.18.0
- 0.17.0
- 0.16.0
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-dev/v9.0
- dev-develop
This package is auto-updated.
Last update: 2022-06-17 10:31:36 UTC
README
用户组件包提供了管理应用程序用户的便捷方式。
安装
Composer
要将此包包含到您的项目中,请运行以下命令。
composer require vicoders/media-manager
配置和迁移
运行以下命令以发布配置和迁移文件。
php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
php artisan vendor:publish --provider "Prettus\Repository\Providers\RepositoryServiceProvider"
php artisan vendor:publish --provider "Spatie\MediaLibrary\MediaLibraryServiceProvider"
php artisan vendor:publish --provider "VCComponent\Laravel\MediaManager\MediaManagerProvider"
创建表。
php artisan migrate
在 config/medialibrary.php
中进行更改。
'media_model' => VCComponent\Laravel\MediaManager\Entities\Media::class,
环境
在 .env
文件中,我们需要进行一些配置。
API_PREFIX=api
API_VERSION=v1
API_NAME="Your API Name"
API_DEBUG=false
请记住更新您的 APP_URL
APP_URL=http://somedomain.com
在 .env
文件中生成 JWT_SECRET
。
php artisan jwt:secret
配置
在 config/filesystems
中,在 'disk'
中添加 'media'
以在添加图片时创建链接和存储文件夹。
'disks' => [
...
'media' => [
'url' => env('APP_URL') . '/uploads/media',
'driver' => 'local',
'root' => public_path('uploads/media'),
],
],
在 .env
中添加 MEDIA_DISK="media"
以使用 'disks'
中的 'media'
配置。
现在包已准备好使用。
配置
URL命名空间
为了避免与应用程序的api端点重复,包有其路由的默认命名空间,为 media-manager
。例如
{{url}}/api/media-manager/collections
您可以通过修改 .env
文件中的 MEDIA_MANAGER_NAMESPACE
变量来将包的url命名空间更改为您想要的任何内容。
MEDIA_MANAGER_NAMESPACE="your-namespace"
准备你的模型
要将媒体与模型关联,该模型必须实现以下接口和特性
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia\HasMedia; use VCComponent\Laravel\MediaManager\HasMediaTrait; class Post extends Model implements HasMedia { use HasMediaTrait; ... }
如果您想使模型具有可配置尺寸的媒体,您应该在其模型中包含 registerMediaConversions
方法。
public function registerMediaConversions(Media $media = null) { $media_dimension = MediaDimension::where('model', 'product')->get(); foreach ($media_dimension as $item) { $this->addMediaConversion($item->name)->width($item->width)->height($item->height)->sharpen(10); } }
关联媒体
您可以像这样将文件与模型关联
$media_id = 2; $post = Post::create($data); $post->attachMedia($media_ids);
或者您可以传递媒体ID数组
$media_ids = [1, 2, 3]; $post = Post::create($data); $post->attachMedia($media_ids);
检索媒体
您可以使用以下几种方法检索媒体
使用Eloquent模型关系
$mediaItems = $newsItem->media;
使用 getMedia
方法
$mediaItems = $newsItem->getMedia();
您可以检索特定集合的媒体
$collection_name = 'image'; $mediaItems = $newsItem->getMedia($collection_name);
S3磁盘配置
默认情况下,所有文件都存储在配置文件中指定的 disk_name
指定的磁盘上。
如果您想使用 s3
存储文件,您可以自由更改 disk_name
配置,只需添加以下环境变量即可
MEDIA_DISK=s3
请确保您在 config/medialibrary.php
文件中配置了正确的s3 URL。
's3' => [
'domain' => 'https://'.env('AWS_BUCKET').'.s3-'.env('AWS_DEFAULT_REGION').'.amazonaws.com',
],
API列表
以下是该包提供的API列表。
动词 | URI | 动作 |
---|---|---|
GET | /api/{namespace}/collections |
获取具有分页的集合列表 |
GET | /api/{namespace}/collections/all |
获取所有集合 |
GET | /api/{namespace}/collections/{id} |
获取集合项 |
POST | /api/{namespace}/collections |
创建集合 |
PUT | /api/{namespace}/collections/{id} |
更新集合 |
DELETE | /api/{namespace}/collections/{id} |
删除集合 |
------ | ------ | ------ |
GET | /api/{namespace}/media |
获取具有分页的集合列表 |
GET | /api/{namespace}/media/all |
获取所有媒体 |
GET | /api/{namespace}/media/{id} |
获取集合项 |
POST | /api/{namespace}/media |
创建集合 |
PUT | /api/{namespace}/media/{id} |
更新集合 |
DELETE | /api/{namespace}/media/{id} |
删除集合 |
PUT | /api/{namespace}/media/{id}/collection/attach |
将媒体附加到集合 |
PUT | /api/{namespace}/media/{id}/collection/detach |
从集合中移除媒体 |