如何修复HasAttributes.php

时间:2019-05-09 11:59:41

标签: javascript laravel laravel-5 eloquent

我需要通过一些逻辑附加一个属性。因此,我将getPercentageAttribute函数写入App\User_Tax中。代码是

protected $appends = 'percentage';

public function getPercentageAttribute()
{
    $p = SystemParameterSP::where([
      ['serviceprovider_id', $this->user_type_id]
    ])->first();
    if($p != null){
      return $p->value1;
    }
    else{
      $d = DB::table('user_taxes_dependencies')->where('system_tax_id', $this->system_tax_id)->first();
      return $d->percentage;
    }
}

然后我得到User_Tax模型传递给刀片。代码是

$user_taxes = User_Tax::where([
                                ['user_taxes.user_type', 3],
                                ['user_taxes.status', 1]
                            ])->get();

到刀片文件中,我需要将此laravel变量转换为javascript变量。

var user_taxes = {!! json_encode($user_taxes) !!};

如果我尝试进行转换,则会出错

ErrorException in HasAttributes.php line 207:
count(): Parameter must be an array or an object that implements Countable 

我无法解决此错误。有人可以建议解决方案吗?

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,则需要首先serialise将结果:

在您的模板中:

var user_taxes = '{!! $user_taxes->toJson() !!}';