Laravel 授权返回

问题描述 投票:0回答:1

我在用户模型中创建了一个函数来返回权限并作为 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 laravel laravel-blade user-permissions
1个回答
0
投票

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

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.