微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

渲染一个集合会抛出“htmlspecialchars() 期望”我怎么能像 Eloquent 集合一样重新编写它

如何解决渲染一个集合会抛出“htmlspecialchars() 期望”我怎么能像 Eloquent 集合一样重新编写它

调用一个 API 并将响应放入一个集合中(认为这是一个好主意),将它重新定义为一个带有 foreach 的 eloquent 集合

我的特点:

class AzureRest
{
    public static function getSubscription($subscriptionId)
    {
        $token = TokenCache::getRestApiToken();
        $url = "https://management.azure.com/subscriptions/".$subscriptionId."?api-version=2020-01-01";
        $json = Http::withToken($token)->get($url);
        return collect(json_decode($json,true,5))->all();
    }
}

我的 livewire 控制器

class ShowSubscriptions extends Component
{
    public $subscriptionId;

    public function mount()
    {
        $this->subscriptionId;
    }

    public function render()
    {
        return view('livewire.azure.show-subscriptions',[
            'details' => AzureRest::getSubscription($this->subscriptionId)
        ]);
    }
}

我的刀

<div>
    @foreach($details as $detail)
        <p>{{$detail->foo}}</p>
        <p>{{$detail->bar}}</p>
        <p>{{$detail->baz}}</p>
    @endforeach
</div>

这是集合的样子:

enter image description here

解决方法

当您在集合中调用 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="20dp"/> <!-- This is the border color --> <stroke android:width="2dp" android:color="@color/purple_700"/> <!-- This is the background color --> <solid android:color="@color/white"/> </shape> 方法时,它会返回底层数组。

例如

all()

因此,当您尝试执行 collect([1,2,3])->all(); // [1,3] <--- returned 时,它会返回错误,因为它实际上应该是 $detail->foo,因为它在执行 $detail['foo'] 后作为数组返回。

所以尝试删除 ->all(),它应该可以工作。

,

我应该多睡一会儿,我终于明白了:

我删除了 trait 上的集合

- return collect(json_decode($json,true,5))->all();

+ return json_decode($json,5);

并像往常一样访问数组

        <p>{{$details['id']}}</p>
        <p>{{$details['displayName']}}</p>
        <p>{{$details['subscriptionPolicies']['spendingLimit']}}</p>

快乐编码;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。