【问题标题】: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();
}
}
我被补充说验证和工作都很好。