如何使用laravel-medialibrary将Media添加到另一个数据库

问题描述

所以我试图覆盖laravel-medialibrary,以便当我运行时

$modelA
  ->addMedia($attachment)
  ->withCustomProperties(['model_id' => $modelA->id])
  ->toMediaCollection('attachments_a');

,它将记录添加到另一个指定的数据库中,例如:database1_MysqL

但是,它现在正在改为添加到我当前的数据库(database2)中。

我创建了一个Media模型,该模型已经与另一个数据库建立连接

namespace App\Domains\Test\Models\Media;
class Media extends Model
{    
   protected $connection = 'database1_MysqL'; 
}

与媒体相关的模型,我也已覆盖了关系以引用连接到另一个表的媒体。

use App\Domains\Test\Models\Media;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class ModelA extends Model implements HasMedia
{

 use InteractsWithMedia;

    public function media(): MorphMany
    {
        return $this->morphMany(Media::class,'model');
    }
}

解决方法

找到了一种方法。 https://spatie.be/docs/laravel-medialibrary/v8/advanced-usage/using-your-own-model#breadcrumb

只需在配置中交换模型

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...