1

使用 MediaLibrary 包时出现此错误

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

我的项目详情:-

php:7.3.22

拉拉维尔:7.28.3

我已尝试遵循文档 v7 并运行以下命令

composer require spatie/laravel-medialibrary

除此之外,我还检查了其他帖子,我遵循了大部分步骤,但仍然收到相同的错误

作曲家.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;
}

4

1 回答 1

6

确保遵循您正在使用的 Laravel-medialibrary 的特定版本的文档。在您的情况下,版本 7。看起来您正在关注版本 8文档。

在版本 7 中,特征是Spatie\MediaLibrary\HasMedia\HasMediaTrait而不是Spatie\MediaLibrary\InteractsWithMedia. 并且界面Spatie\MediaLibrary\HasMedia\HasMedia不是Spatie\MediaLibrary\HasMedia.

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

于 2020-09-28T14:09:26.893 回答