从空值创建默认对象 - 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 时,

和 laravel 响应与 Creating default object from empty value 一致,我能做什么?

谢谢

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

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

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

这是因为变量$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();
    }
}

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