首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用Spate媒体库时出错:“对未定义方法Illuminate\Foundation\Auth\User::addMediaFromRequest()”的BadMethodCallException调用

使用Spate媒体库时出错:“对未定义方法Illuminate\Foundation\Auth\User::addMediaFromRequest()”的BadMethodCallException调用
EN

Stack Overflow用户
提问于 2020-05-26 05:37:12
回答 1查看 3.9K关注 0票数 2

这是我的用户模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    namespace App;
    use Illuminate\Database\Eloquent\Model;
    use Spatie\MediaLibrary\HasMedia\HasMedia;
    use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
    use Spatie\MediaLibrary\File;
    use Illuminate\Notifications\Notifiable;
    use Illuminate\Contracts\Auth\MustVerifyEmail;
    use Illuminate\Foundation\Auth\User as Authenticatable;

    class User extends Authenticatable  implements HasMedia

    {

        use HasMediaTrait;
        use Notifiable;

        protected $fillable = [
            'name', 'email', 'password',
        ];

        protected $hidden = [
            'password', 'remember_token',
        ];

        protected $casts = [
            'email_verified_at' => 'datetime',
        ];

        public function role(){
            return $this->belongsToMany('App/Role');
        }


    }

这是我的UserController

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
namespace App\Http\Controllers;

use Illuminate\Foundation\Auth\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
public function store(Request $request)
    {
        $user=new User;
        $user->name=($request['name']);
        $user->email=($request['email']);
        $password=bcrypt($request['password']);
        $user->password=$password;

        $user_photo=$request['photo'];

        $user->addMediaFromRequest('photo')->toMediaCollection('images');


        $user->save();
        return redirect('/admin');

    }
}

我想使用空间媒体库并为每个用户上传一张照片,但是我得到了与空间库相关的错误:

对未定义方法Illuminate\Foundation\Auth\User::addMediaFromRequest()".的

“调用

我读过一些相关的文章,但我不知道如何解决这个问题。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-26 06:47:08

库的第8版有此文档。你在使用正确的特质吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class YourModel extends Model implements HasMedia
{
    use InteractsWithMedia;
}

编辑:

另外,使用HasMediaTrait是为了版本7,所以我假设您使用的是version 7,我认为这是因为您导入了错误的User类。用于实现UserHasMedia类位于App\User命名空间中。但是您要从User命名空间导入Illuminate\Foundation\Auth\User类。因此,将其更改为use App\User;,您应该会没事的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
public function store(Request $request)
    {
        $user=new User;
        $user->name=($request['name']);
        $user->email=($request['email']);
        $password=bcrypt($request['password']);
        $user->password=$password;

        $user_photo=$request['photo'];

        $user->addMediaFromRequest('photo')->toMediaCollection('images');


        $user->save();
        return redirect('/admin');

    }
}

https://docs.spatie.be/laravel-medialibrary/v8/basic-usage/preparing-your-model/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62023422

复制
相关文章
Java-方法重载时 调用未定义的对象属性
public class TestWayReload { int id; String name; String pwd; public TestWayReload(){ System.out.println(“Hellow World!”); System.out.println("################"); }
Fisherman渔夫
2019/07/30
5.5K0
ubuntu gcc编译时对’xxxx’未定义的引用问题
http://www.cnblogs.com/oloroso/p/4688426.html
bear_fish
2018/09/19
8.2K0
Laravel学习笔记之bootstrap源码解析
说明:Laravel在把Request通过管道Pipeline送入中间件Middleware和路由Router之前,还做了程序的启动Bootstrap工作,本文主要学习相关源码,看看Laravel启动程序做了哪些具体工作,并将个人的研究心得分享出来,希望对别人有所帮助。Laravel在入口index.php时先加载Composer加载器:Laravel学习笔记之Composer自动加载,然后进行Application的实例化:Laravel学习笔记之IoC Container实例化源码解析,得到实例化后的Application对象再从容器中解析出Kernel服务,然后进行Request实例化(Request实例化下次再聊),然后进行Bootstrap操作启动程序,再通过Pipeline送到Middleware:Laravel学习笔记之Middleware源码解析,然后经过路由映射找到对该请求的操作action(以后再聊),生成Response对象经过Kernel的send()发送给Client。本文主要聊下程序的启动操作,主要做了哪些准备工作。
用户7353560
2021/11/07
3.9K0
Laravel 底层原理:门面(Facades)
Laravel 内置了很多 Facades ,可以访问绝大部分 Laravel 的功能。
码农编程进阶笔记
2021/07/20
1.1K0
Laravel5.3之IoC Container实例化源码解析
说明:本文主要学习Laravel容器的实例化过程,主要包括Register Base Bindings, Register Base Service Providers , Register Core Container Aliases and Set the Base Path等四个过程。同时并把自己的一点研究心得分享出来,希望对别人有所帮助。
botkenni
2022/01/10
2K0
Laravel 底层原理:门面(Facades)
Laravel 内置了很多 Facades ,可以访问绝大部分 Laravel 的功能。
全栈程序员站长
2022/07/12
1.4K0
Laravel5.3之bootstrap源码解析
说明:Laravel在把Request通过管道Pipeline送入中间件Middleware和路由Router之前,还做了程序的启动Bootstrap工作,本文主要学习相关源码,看看Laravel启动程序做了哪些具体工作,并将个人的研究心得分享出来,希望对别人有所帮助。Laravel在入口index.php时先加载Composer加载器:Laravel5.2之Composer自动加载,然后进行Application的实例化:Laravel5.3之IoC Container实例化源码解析,得到实例化后的Application对象再从容器中解析出Kernel服务,然后进行Request实例化(Request实例化下次再聊),然后进行Bootstrap操作启动程序,再通过Pipeline送到Middleware:Laravel5.3之Middleware源码解析,然后经过路由映射找到对该请求的操作action(以后再聊),生成Response对象经过Kernel的send()发送给Client。本文主要聊下程序的启动操作,主要做了哪些准备工作。
botkenni
2022/01/10
7K0
Laravel5.3之bootstrap源码解析
Laravel 邮箱认证
我们修改的User实现了 MustVerifyEmailContract 接口 查看其源码 vendor/laravel/framework/src/illuminate/Contracts/Auth/MustVerifyEmail
切图仔
2022/09/14
7800
Laravel 邮箱认证
laravel邮箱认证
在app/User.php 引入 MustVerifyEmailTrait 即可完成邮箱验证
章鱼喵
2019/03/29
1.6K0
laravel邮箱认证
Laravel 用户认证
基于 web 浏览器的身份验证:常见于前后端混合开发的项目,php混合html模版;使用session+cookie完成身份验证。现在很少见了
崔哥
2023/04/16
2.1K0
如何扩展Laravel Auth来满足项目需求
之前写过两篇文章分别介绍了Laravel Auth认证系统的构成和实现细节知道了Laravel是如何应用看守器和用户提供器来进行用户认证的,但是在现实工作中大部分时候产品用户体系是早就有的这种情况下就无法使用框架自带的Auth系统,所以或多或少地我们都会需要在自带的看守器和用户提供器基础之上做一些定制化来适应项目,我会列举一个在做项目时遇到的具体案例,在这个案例中用自定义的看守器和用户提供器来扩展了Laravel的用户认证系统让它能更适用于我们自己开发的项目。
KevinYan
2019/10/13
2.7K0
Laravel 参数验证的疑与惑
Laravel 文档调用验证器,除了通过控制器,还有就是通过Facades的方式创建验证器对象。Validator::make($data,$rule,$message)。
写PHP的老王
2019/11/28
3.4K0
[译]Laravel 5.0 之 Middleware (Filter-Style)
本文译自 Matt Stauffer 的系列文章. ---- 如果你有阅读我之前的 Laravel 5.0 系列文章,你可能已经注意到路由过滤器(route filters)的变化:它们先是移到了单独的目录和类结构,然后就莫名其妙地消失了。你可能还留意到在原本应该是路由过滤器的地方,变成了对 Middleware 的引用。 实际上给 Laravel 应用添加自定义的 Middleware 在以前的版本中就有了。 Chris Fidao 的 HTTP Middleware in Laravel 4.1 对 m
小李刀刀
2018/03/02
2.1K0
Laravel源码解析之中间件
中间件(Middleware)在Laravel中起着过滤进入应用的HTTP请求对象(Request)和完善离开应用的HTTP响应对象(Reponse)的作用, 而且可以通过应用多个中间件来层层过滤请求、逐步完善响应。这样就做到了程序的解耦,如果没有中间件那么我们必须在控制器中来完成这些步骤,这无疑会造成控制器的臃肿。
KevinYan
2019/10/13
1.4K0
Laravel源码解析之HTTP Kernel
由于 PHP 可以处理 WEB 和 CLI 两种接口请求,所以 Laravel中设计 HttpKernel 和 ConsoleKernel 来处理这两种类型的请求,Http Kernel是Laravel中用来串联框架的各个核心组件来网络请求的,简单的说只要是通过 public/index.php来启动框架的都会用到Http Kernel,而另外的类似通过 artisan命令、计划任务、队列启动框架进行处理的都会用到Console Kernel, 今天我们先梳理一下Http Kernel做的事情。
KevinYan
2019/10/13
1.4K0
点击加载更多

相似问题

对未定义方法Illuminate\Database\Query\Builder::searchable()的BadMethodCallException调用

12

对未定义方法Illuminate\Database\Query\Builder::getAuthIdentifierName()的BadMethodCallException调用

11

对未定义方法Illuminate\Database\Eloquent\Relations\BelongsToMany::citas()的BadMethodCallException调用

12

调用未定义方法Illuminate\Foundation\Application::bindShared()

51

调用未定义方法Illuminate\Foundation\Application::registerCoreContainerAliases()

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文