Reputation: 3121
I need to add spatie/laravel-medialibrary 10 into Laravel 9 app with jenssegers/mongodb:^3.9
I modified model app/Models/CMSItem.php decalaration :
<?php
namespace App\Models;
use Carbon;
use Jenssegers\Mongodb\Eloquent\Model;
use Illuminate\Validation\Rule;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class CMSItem extends Model implements HasMedia
{
use InteractsWithMedia;
use HasFactory;
protected $collection = 'cms_items';
public $timestamps = true;
But I got error :
Call to a member function prepare() on null
with code :
foreach ($cMSItems as $nextCMSItem) {
$this->media_image_url = '';
$this->file_name = '';
foreach ($nextCMSItem->getMedia(config('app.media_app_name')) as $mediaImage) { // this line raised the error
$nextCMSItem->media_image_url = $mediaImage->getUrl();
$nextCMSItem->file_name = $mediaImage->file_name;
}
}
Reading docs https://spatie.be/docs/laravel-medialibrary/v10/advanced-usage/using-your-own-model I try to define custom model in config/media-library.php :
...
// 'media_model' => Spatie\MediaLibrary\MediaCollections\Models\Media::class,
'media_model' => App\Models\CustomMongoMedia::class,
...
and I created file app/Models/CustomMongoMedia.php with content:
<?php
namespace App\Models;
use Jenssegers\Mongodb\Eloquent\Model;
use Spatie\MediaLibrary\MediaCollections\Models\Media as BaseMedia;
class CustomMongoMedia extends BaseMedia
{
protected $collection = 'cms_items';
public $timestamps = true;
}
But I got the same error.
If I modify this file:
class CustomMongoMedia extends Model
{
protected $collection = 'cms_items';
public $timestamps = true;
}
But I got error:
Spatie\MediaLibrary\MediaCollections\MediaRepository::__construct():
Argument #1 ($model) must be of type Spatie\MediaLibrary\MediaCollections\Models\Media, App\Models\CustomMongoMedia given, called in
/mnt/_work_sdb8/wwwroot/lar/MngProducts/vendor/spatie/laravel-medialibrary/src/MediaLibraryServiceProvider.php on line 35
In which way can it be salved ?
Thanks!
Upvotes: 2
Views: 248