![](/img/trans.png)
[英]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.