我在用户模型中创建了一个函数来返回权限并作为 obj 返回。但是当我输入 {{ Auth::user()->permission()->outlineAgreements }} 时,它说“htmlspecialchars() 期望参数 1 为字符串,给定对象”。我该如何解决它?
PS:里面的测试值是一个数组
"{"outlineAgreements":["view"],"purchaseOrder":["view"],"pwra":["view","create","update","delete"]}"
public function permission()
{
$permissions = auth()->user()->getAllPermissions()->pluck('name');
foreach ($permissions as $key => $value) {
$module = last(explode(" ", $value));
$action = current(explode(" ", $value));
$result[$module] = $result[$module] ?? [];
array_push($result[$module], $action);
}
return json_decode(json_encode($result));
}
Php 抱怨对象打印。它期望您指示它打印的数据是
string
。
使用
dd
打印出权限方法的返回值以进行调试。这样您就可以更清楚地看到您要打印的数据。
{{ dd(Auth::user()->permission()) }}
{{ dd(Auth::user()->permission()->outlineAgreements) }}
如果您的第一个框代表该有效负载数据,并且您需要访问和打印所有
outlineAgreements
权限,并且它是一个数组,则可以使用 implode
:
{{ implode(', ', Auth::user()->permission()->outlineAgreements) }}
您也可以循环访问该数组:
@foreach(Auth::user()->permission()->outlineAgreements as $permission)
{{ $permission }}
@endforeach
希望有帮助!