[英]spatie/laravel-medialibrary - Ability to add conversion per media model "on the fly"?
[英]spatie/laravel-medialibrary change primary key
我正在使用 package spatie/laravel-medialibrary并且我想更改其名为 Media 的模态上的主键,而不编辑 package src 文件。
在我的项目中,我使用 uuids 作为我所有模型的主键,所以很自然,我想为这个 ZEFE90A8E604A7C6BFD762321E409CEE4AC0B6E841963CZ model 提供的 ZEFE90A8E604A7C840E88D03A867 做同样的事情。
我已经通过删除行$table->bigInteger('id')
并更改行$table->uuid('uuid')->nullable();
来更改迁移以反映这一点 to table->uuid('uuid')->unique()->primary();
但是,现在我还想让 model 知道我正在使用不同的密钥,方法是设置protected $primaryKey = 'uuid';
和protected $keyType = 'string';
但我找不到在 Media.php model 的包 src 文件之外执行此操作的方法
基本上,我最终要做的只是实现 HasMedia 接口并在我的 Profile model 上使用 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;
}
关于如何实现这一目标的任何建议?
谢谢。
Spatie 的媒体库 package 让您可以选择使用自己的媒体 model,如他们的文档中所述。
只需创建您的自定义 model 并扩展库的Media
model。 然后,您可以修改该 csutom model 以满足您的需求。
use Spatie\MediaLibrary\MediaCollections\Models\Media as BaseMedia;
class Media extends BaseMedia
{
protected $primaryKey = 'uuid';
protected $keyType = 'string';
public $incrementing = false;
// ...
}
请记住将config/media-library.php
中的media_model
键设置为模型的 FQCN。
'media_model' => App\YourMediaModel::class,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.