【问题标题】:Laravel @ Creating default object from empty valueLaravel @从空值创建默认对象
【发布时间】:2018-07-18 01:10:06
【问题描述】:

试图了解,为什么我无法使用 paypal Sandox 弹出用户余额。

这是我的 AccountBalance.php 部分代码,当用户在贝宝付款时

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;

谢谢

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    这是因为您的 $balance 变量是来自此查询的 null

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

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

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

    【讨论】:

    • 在 db 中我有这笔交易的记录,我想知道...为什么 currency_id 等于 2,如果表 currency 只有 1 个 ID 为 1 的欧元值
    猜你喜欢
    • 2017-11-29
    • 2019-03-14
    • 1970-01-01
    • 2021-05-22
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多