首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel-5.4 -错误:从空值创建默认对象

laravel-5.4 -错误:从空值创建默认对象
EN

Stack Overflow用户
提问于 2017-04-19 15:05:48
回答 2查看 65.9K关注 0票数 10

我想在数据库中存储图像路径。我在vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php下的控制器代码如下:

代码语言:javascript
复制
public function register(Request $request)
{
    $this->validator($request->all())->validate();

    if($request->hasFile('image')) {
    $image_name = $request->file('image')->getClientOriginalName();              
    $image_path = $request->file('image')->store('public'); 
    $user->image = Storage::url($image_name);
    $user->save();
    }

    event(new Registered($user = $this->create($request->all())));

   // $this->guard()->login($user); disable autologin for new users

    return $this->registered($request, $user)
                    ?: redirect($this->redirectPath());
}

我收到以下错误: RegistersUsers.php第40行中的ErrorException :从空值创建默认对象

正在将图像保存在公用文件夹中,但无法在用户表数据库中保存图像路径。用户表的模式

Schema::create('users', function (Blueprint $table) { $table->increments('user_id'); $table->string('name'); $table->string('image'); $table->rememberToken(); $table->timestamps();

如何继续将镜像路径存储在数据库的用户表中

EN

回答 2

Stack Overflow用户

发布于 2017-04-19 15:17:26

您还没有初始化变量$user,因此在使用它之前,您必须添加$user = new User;,假设您已经有了use App\User;

或者$user = new \App\User;,如果你不想的话。

更新如果您试图更新现有的用户记录,则必须初始化$user变量,方法是根据应在请求中发送的主键进行选择,然后执行如下初始化:

代码语言:javascript
复制
$user_id = $request->input('user_id');
$user = User::find($user_id);
票数 10
EN

Stack Overflow用户

发布于 2019-07-26 16:14:00

使用下面的简单方法:

代码语言:javascript
复制
$user = User::where('id', '=', $id)->first(); // where id is method param from url or request object
$user->save();

当更新多个表时,这也更容易,其中子表中的is具有外键,并且需要在更新过程中显式定义。

此外,在$id是该对象表的主键的情况下,$user = User::find($id);通常也有效

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

https://stackoverflow.com/questions/43488754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档