Laravel 7 : 未找到接口 'Spatie\MediaLibrary\HasMedia'

Laravel 7 : Interface 'Spatie\MediaLibrary\HasMedia' not found

我在使用 MediaLibrary 包时遇到这个错误

Interface 'Spatie\MediaLibrary\HasMedia' not found
Trait 'Spatie\MediaLibrary\InteractsWithMedia' not found

我的项目详情:-

php : 7.3.22

laravel : 7.28.3

我已经尝试按照文档 v7 以及 运行 下面的命令进行操作

composer require spatie/laravel-medialibrary

除此之外,我还检查了其他 post,我已按照大部分步骤操作,但仍然返回相同的错误

composer.json

"require": {
        "php": "^7.2.5",
        "fideloper/proxy": "^4.2",
        "fruitcake/laravel-cors": "^1.0",
        "guzzlehttp/guzzle": "^6.3",
        "laravel/framework": "^7.0",
        "laravel/tinker": "^2.0",
        "laravelcollective/html": "^6.2",
        "spatie/laravel-activitylog": "^3.16",
        "spatie/laravel-medialibrary": "^7.19"
    },

型号

use Illuminate\Database\Eloquent\Model;
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class Applicant extends Model implements HasMedia
{
    use LogsActivity, InteractsWithMedia;
}

确保遵循您正在使用的 Laravel-medialibrary 特定版本的文档。在您的情况下 version 7. It looks like you were following the version 8 文档。

在版本 7 中,特征是 Spatie\MediaLibrary\HasMedia\HasMediaTrait 而不是 Spatie\MediaLibrary\InteractsWithMedia。而且接口是 Spatie\MediaLibrary\HasMedia\HasMedia 而不是 Spatie\MediaLibrary\HasMedia.

如果您想改用版本 8,请将您的要求更改为 "spatie/laravel-medialibrary": "^8.0",然后 运行 composer update