Php Laravel@从空值创建默认对象
试图理解,为什么我不能使用paypal sandox弹出用户余额 这是我的AccountBalance.php部分代码,当用户在paypal中付费时Php Laravel@从空值创建默认对象,php,laravel,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',
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这是因为您的$balance
变量在此查询中为null
:
$balance = UserBalance::where('user_id', $user_id)->where('currency_id', $currency)->first();
弄清楚为什么这个查询不能按您希望的方式工作,您应该会没事的。一个好的开始是找出$currency
变量所包含的内容,并确保在调用重建平衡(args)
时正确传递该变量
如果您尝试将属性分配给null
,则会得到确切的错误。这是因为您的$balance
变量在此查询中为null
:
$balance = UserBalance::where('user_id', $user_id)->where('currency_id', $currency)->first();
弄清楚为什么这个查询不能按您希望的方式工作,您应该会没事的。一个好的开始是找出$currency
变量所包含的内容,并确保在调用重建平衡(args)
时正确传递该变量
如果您试图将一个属性分配给null
您会得到确切的错误。在db中,我有此事务的记录,我想知道。。。如果表currency
只有1个值euro,id为1in db,为什么货币id等于2?我有此交易的记录,我想知道。。。如果表currency
只有id为1的1欧元值,为什么货币id等于2