标签: laravel-medialibrary

Spatie 媒体库 - 转换后删除原件

是否可以使用Spatie Media Library(v7)转换图像后删除原始文件 - 例如,客户端上传巨大的分辨率文件,但我们只需要它们大约1000px宽,并且不想存储巨大的原始文件。

提前干杯!

laravel laravel-medialibrary

6
推荐指数
1
解决办法
1267
查看次数

Composer 版本匹配错误 laravel + spatie medialibrary

我尝试通过 laravel 安装程序使用laravel new <appname>.

这工作没有问题。一旦我尝试安装,spatie/medialibrary就会出现以下无法解释的错误:

$ composer require "spatie/laravel-medialibrary:^9.0.0"
./composer.json has been updated
Running composer update spatie/laravel-medialibrary
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - spatie/laravel-medialibrary[9.0.0, ..., 9.6.4] require spatie/image ^1.4.0 -> satisfiable by spatie/image[1.4.0, ..., v1.x-dev].
    - spatie/image[1.10.0, ..., v1.x-dev] require league/glide ^1.6 -> satisfiable by league/glide[1.6.0, 1.6.1, 1.7.0, 1.x-dev].
    - spatie/image[1.7.5, ..., 1.9.0] require league/glide ^1.4 -> satisfiable …
Run Code Online (Sandbox Code Playgroud)

php laravel composer-php laravel-medialibrary

5
推荐指数
1
解决办法
2万
查看次数

在 Laravel 8 中使用 spatie 媒体库无法显示图像

我在显示使用 spatie 媒体库上传的图像时遇到问题。我已经查看了他们的文档,但找不到解决方案。

我上传文件没有问题(仅限单个文件)。

数据库媒体表 数据库媒体表的屏幕截图

控制器@商店

public function store(Request $request)
{
    $categories = new ProductCategories();
    $categories->name         = $request->name;
    $categories->slug         = $request->slug;
    $categories->description  = $request->description;

    if($request->hasFile('photo') && $request->file('photo')->isValid()){
        $categories->addMediaFromRequest('photo')->toMediaCollection('category');
    }

    $categories->save();
    $request->session()->flash('message', 'Successfully created category');
    return redirect()->back();
}
Run Code Online (Sandbox Code Playgroud)

控制器@索引

public function index()
{
    $lists = ProductCategories::all();
    return view('dashboard\product_category\categoryList', [ 'lists' => $lists ]);
}
Run Code Online (Sandbox Code Playgroud)

config/filesystems.php

'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],
    'public' => [
        'driver' => 'local',
        'root' => public_path('images/media'),
        'url' => env('APP_URL').'/images/media',
        'visibility' …
Run Code Online (Sandbox Code Playgroud)

laravel laravel-medialibrary

4
推荐指数
1
解决办法
7968
查看次数

如何在 laravel spatie 中更新/编辑 custom_properties?

我在我的应用程序中使用 laravel spatie。我有个问题。当用户更新他的图像列表时。管理员必须批准用户刚刚更新的图像列表。如果用户添加图像,我只需添加更多。但是当用户改变自己拥有的图像时,该怎么办呢?我无法更改 collection_name,因为如果我更改,该图像不会出现在用户个人资料中。你对我有什么理想吗?我有一个理想:我在 custom_properties 列中添加一个 value {'change' => 'false'}。当用户更改此图像时,我会将 custom_properties 更改为{'change' => 'true'}. 当管理员批准更改时,我必须将 custom_properties 更新为{'change' => 'false'}. 但我无法访问 custom_properties 列的值。(如您所知,laravel spatie 为我们提供了一个媒体表,它有一个列 custom_properties,其中包含 json 数据)。所以请帮助我访问此专栏并更新其中的数据。

很抱歉,因为我的英语不好。

    $mediaOld = Media::where(['model_id' => $doctor_id, 'collection_name' => 'doctor_achieved'])->get();
    if (isset($mediaOld[$index])) {
        $mediaOld[$index]->update(['custom_properties->change' => 'true']);
        $mediaOld[$index]->save(); // Its not working 
        return $mediaOld[$index]->custom_properties; 
    }
Run Code Online (Sandbox Code Playgroud)

这是该记录的数据响应 这是该记录的数据响应

php laravel laravel-medialibrary

2
推荐指数
1
解决办法
1628
查看次数

spatie/laravel-medialibrary 更改主键

我正在使用包spatie/laravel-medialibrary,我想更改其名为 Media 的模式上的 PrimaryKey,而不编辑包 src 文件。

在我的项目中,我使用 uuid 作为所有模型的主键,因此自然地,我想对此包提供的 Media.php 模型执行相同的操作。

我已经更改了迁移以反映这一点,通过删除该行$table->bigInteger('id')并将其更改$table->uuid('uuid')->nullable();table->uuid('uuid')->unique()->primary();

但是,现在我还想让模型知道我正在使用不同的密钥,通过设置protected $primaryKey = 'uuid';protected $keyType = 'string';但我找不到在 Media.php 模型的包 src 文件之外执行此操作的方法

基本上,我最终想要做的只是实现 HasMedia 接口并在我的 Profile 模型上使用 InteractsWithMedia 特征,如下所示:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class Profile extends Model implements HasMedia
{
    use InteractsWithMedia;
}
Run Code Online (Sandbox Code Playgroud)

关于如何实现这一目标有什么建议吗?

谢谢。

php uuid primary-key laravel laravel-medialibrary

2
推荐指数
1
解决办法
2682
查看次数

如何更改 spatie 媒体库中的图像目录?

我对这个包很陌生,因为我通常使用图像干预。所以问题是每当我保存图像时,它都会保存在存储目录中而不是公共目录中。我尝试查看文档并做了一些研究,但没有看到任何答案。请参阅下面我的代码进行保存。

$user->addMediaFromRequest('avatar')->toMediaCollection('avatars');
Run Code Online (Sandbox Code Playgroud)

包裹:

https://spatie.be/docs/laravel-medialibrary/v7/introduction

laravel laravel-medialibrary

2
推荐指数
1
解决办法
6157
查看次数