【问题标题】:Laravel 7 : Interface 'Spatie\MediaLibrary\HasMedia' not foundLaravel 7:找不到接口“Spatie\MediaLibrary\HasMedia”
【发布时间】:2020-09-28 13:51:06
【问题描述】:

我在使用 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;
}

【问题讨论】:

  • 尝试重新生成类composer dump-autoload

标签: laravel laravel-7 laravel-medialibrary


【解决方案1】:

确保遵循您正在使用的 Laravel-medialibrary 的特定版本的文档。在你的情况下version 7。您似乎在关注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

【讨论】:

  • 谢谢先生,问题解决了,我已经接受了这个答案
猜你喜欢
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多