【问题标题】:Creating default Object from empty value error从空值错误创建默认对象
【发布时间】:2016-10-11 01:16:12
【问题描述】:

否决票 我遇到了同样的错误,但这是我的方法 $rval = '4q34ipuipfpaidapdfadup'//a random number...

  $details = Company::with('User')->where('email', Input::get('qpass'))->first();

  $u = $details['user'];
  $u->reset_pass = $rval;     //then save to the database...
  $u->save();

在这一行 $u->reset_pass = $rval; 我收到一条错误消息“从空值创建默认对象”当我将模型分解为单独的实体时,我仍然在同一行遇到同样的错误......我需要帮助......谢谢。

  $rval = '4q34ipuipfpaidapdfadup'//a random number... 

  $details = Company::where('email', Input::get('qpass'))->first();
  $u = User::find($details->user_id)->get(); 
  $u->reset_pass = $rval;     //then save to the database...
  $u->save();

此时我仍然收到该错误 ($u->reset_pass = $rval;

【问题讨论】:

  • 您可以打印并发布您的 $u 值吗?

标签: php laravel eloquent


【解决方案1】:

尝试使用

  $u = new User();
  $u = $u->find($details->user_id)->first(); 
  $u->reset_pass = $rval;     //then save to the database...
  $u->save();

还可以通过 var_dump($u); 检查您的用户对象是否为空

【讨论】:

  • 这个:find($details->user_id)->first() 会失败。
  • 我在想同样的事情,但我从来没有想过。您初始化 User 对象,并在第二行为其分配不同的用户。从第二行开始,它可能会产生与我得到的结果相同的结果。
【解决方案2】:

当您尝试在不存在的对象上写入对象属性时会返回此错误。

您的 $u 变量为空,这就是您收到此错误的原因。确保您首先正确获取用户 - 您可以尝试 dd($u); 并查看它返回的内容。

【讨论】:

  • 我这样做了,在使用 dd($u) 转储输出后,它返回了一个我需要的用户对象,但现在我不明白错误,这就是我尝试两种方式的原因。
【解决方案3】:

这:$u = User::find($details->user_id)->get(); 没有意义。 Yopu 不需要使用get 方法。如果你使用find,你会得到模型,所以活成这样:

$u = User::find($details->user_id); 

【讨论】:

    猜你喜欢
    • 2019-01-15
    • 2017-01-22
    • 1970-01-01
    • 2023-03-11
    • 2021-02-22
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多