从空值创建默认对象-Laravel 5


Creating default object from empty value - Laravel 5

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

$subscriptions = Auth::user()->subscriptions;
foreach($subscriptions as $subscription)
{
    $subs = Subscription::find($subscription->id);
    $subs->subscriptionstatus_id = 0;
    $subs->save();
}

当我分配0时,行中有Creating default object from empty value的laravel响应,我能做什么?

感谢

当您尝试设置null值的属性时,会出现该错误。例如,

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

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

这是因为变量$subs为null,需要检查是否有内容:

$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();
    }
}

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