【问题标题】:Creating default object from empty value - Laravel 5从空值创建默认对象 - Laravel 5
【发布时间】:2015-12-19 19:55:11
【问题描述】:

我不知道如何修复这个错误,我的代码:

$subscriptions = Auth::user()->subscriptions;

foreach($subscriptions as $subscription)
{
    $subs = Subscription::find($subscription->id);

    $subs->subscriptionstatus_id = 0;

    $subs->save();

}

当我分配0 时,laravel 响应与Creating default object from empty value 一致,我该怎么办?

谢谢

【问题讨论】:

    标签: php laravel variable-assignment


    【解决方案1】:

    当您尝试在 null 值上设置属性时,您会收到该错误。例如,

    $obj = null;
    $obj->prop = 0; // Creating default object from empty value
    

    因此,您的find() 语句似乎返回了null,这意味着您没有带有您要查找的ID 的Subscription

    【讨论】:

    • 我将查看订阅变量,以确定是否如此,谢谢
    【解决方案2】:

    这是因为变量$subs为空,需要检查是否有东西:

    $subscriptions = Auth::user()->subscriptions;
    
    foreach($subscriptions as $subscription)
    {
        $subs = Subscription::find($subscription->id);
    
        // Check if exist the subs record
        if (count($subs) > 0)
        {
            $subs->subscriptionstatus_id = 0;
    
            $subs->save();
        }
    }
    

    我被补充说验证和工作都很好。

    【讨论】:

      猜你喜欢
      • 2016-03-29
      • 2017-11-29
      • 2018-07-18
      • 2019-03-14
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多