Laravel @从空值创建默认对象

时间:2018-02-07 16:42:10

标签: php laravel

试图理解,为什么我无法使用paypal sandox弹出用户平衡。

这是我的AccountBalance.php部分代码,当用户使用paypal付款时

public function rebuildBalance($user_id, $amount, $bonus = 0, $frozen = false, $currency) {
        $balance = UserBalance::where('user_id', $user_id)->where('currency_id', $currency)->first();

        if ($bonus == 0) {
            if ($frozen) {
                $balance->balance_frozen += $amount;
            } else {

                $balance->balance += $amount;
            }

        } else {
            $balance->bonus += $amount;
        }

当交易结束时,我从空值

创建了默认对象

到此部分$balance->balance += $amount;

Thankx

1 个答案:

答案 0 :(得分:2)

这是因为此查询中的$balance变量为null

 $balance = UserBalance::where('user_id', $user_id)->where('currency_id', $currency)->first();

弄清楚为什么这个查询不按你想要的方式工作,你应该没问题。一个好的开始是找出$currency变量的含义 - 并确保在调用rebuildBalance(args)时正确传递它。

如果您尝试将属性分配给null,则会收到确切的错误。