我正在将Laravel与Sweetalert一起使用,我试图显示一条自定义弹出消息,该消息显示Laravel变量的值:
$(document).on('click', '#custombtn', function(e) {
e.preventDefault();
let form = $(this).parents('form');
swal(
{
title: "Alert!",
text: "Youre wallet balance is: {!! digits2persian(json_decode($user_wallet->balance)) !!}",
type: "warning",
allowEscapeKey: false,
allowOutsideClick: false,
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes",
cancelButtonText: "No",
showLoaderOnConfirm: true,
closeOnConfirm: false
}).then((isConfirm) => {
if (isConfirm.value === true) {
window.location.href = {!! json_encode(route('courseRegistrationWithWallet', ['course'=>$item->cor_id,'wallet'=>$user_wallet->id ?? ''])) !!}
}
return false;
});
});
但现在的问题是,当$user_wallet->balance
返回null时,将出现以下错误:
尝试获取非对象的属性"余额">
因此,如果变量未设置,我尝试显示空结果:
{!! digits2persian(json_decode($user_wallet->balance)) ?? '' !!}
但是没有解决这个问题,错误仍然出现!
那么如何解决这个问题呢?
仔细阅读错误消息:
尝试获取非对象的属性"余额">
不是余额为空,而是包含余额的东西。因此,您需要处理$user_wallet为空的情况,例如:
isset($user_wallet) ? digits2persian(json_decode($user_wallet->balance)) : 'No wallet'
尝试此if($user_wallet->balance > 0){}
或者这个$user_wallet->balance ?? "0"