![](/img/trans.png)
[英]Laravel : htmlentities() expects parameter 1 to be string, array given
[英]Laravel htmlentities() expects parameter 1 to be string, array given
我正在嘗試使用https://github.com/skmetaly/laravel-twitch-restful-api軟件包將抽搐集成到我的網站。
那就是我得到的錯誤。
ErrorException in helpers.php line 469:
htmlentities() expects parameter 1 to be string, array given (View: /var/www/rafdev.ovh/html/msvixen/resources/views/twitch.blade.php)
我的控制器$ code = Input :: get('code');
if ($code !== null)
{
$token = TwitchApi::requestToken($code);
} else
{
$token = null;
}
$data = TwitchApi::streamsFollowed($token);
return view('twitch', ['token' => $token, 'data' => $data]);
我的觀點
@extends('master')
@section('content')
<h1>Twitch.TV</h1>
{{ $token }}
{{ $data }}
@endsection
使用dd()
array:9 [▼
0 => array:11 [▼
"_id" => 17733016640
"game" => "World of Warcraft"
"viewers" => 15551
"created_at" => "2015-11-15T22:27:13Z"
"video_height" => 1080
"average_fps" => 60.2769481401
"delay" => 0
"is_playlist" => false
"_links" => array:1 [▶]
"preview" => array:4 [▶]
"channel" => array:22 [▶]
]
1 => array:11 [▶]
2 => array:11 [▶]
3 => array:11 [▶]
4 => array:11 [▶]
5 => array:11 [▶]
6 => array:11 [▶]
7 => array:11 [▶]
8 => array:11 [▶]
]
這樣就可以了,但是當我嘗試顯示數據時-回到htmlentities()
錯誤
發生這種情況是因為$data
作為數組返回。
當TwitchApi::streamsFollowed($token);
調用后,Facade將調用Skmetaly\\TwitchApi\\Services\\TwitchApiService
。
反過來,這將創建Skmetaly\\TwitchApi\\API\\Users
的實例,並在streamsFollowed()
調用streamsFollowed()
方法。
此方法對/streams/followed
進行調用,該調用返回數據集,例如下面的示例。 使用Guzzle HTTP Client的json()
方法,它會自動轉換為數組,而不是JSON。
{
"_links": {
"self": "https://api.twitch.tv/kraken/streams/followed?limit=25&offset=0",
"next": "https://api.twitch.tv/kraken/streams/followed?limit=25&offset=25"
},
"_total": 123,
"streams": [...]
}
為了顯示流,您需要遍歷$data
的streams數組。
如果您要稍微修改控制器
return view('twitch', ['token' => $token, 'streams' => $data->streams]);
然后,您可以在視圖中迭代流。
@foreach($streams as $stream)
{{ $stream }}
@endforeach
更新:您會注意到每個流也是一個數組。 這意味着您需要選擇每個數組中要顯示的鍵。 假設其中一個流中有一個稱為broadcaster
的鍵,其中包含一個字符串; 您可以按如下方式修改以上內容。
@foreach($streams as $stream)
{{ $stream['broadcaster'] }}
@endforeach
現在,閱讀流示例響應文檔后 ,流的內容將根據流是否在線而有所不同。 注意:這是假設數據結構與您尚未在問題中發布流的內容相同。
這意味着離線{{ $stream['broadcaster'] }}
可以正常工作,但在線時則不行,並且您會遇到相同的錯誤。 您可能需要做的是在嘗試回顯部分信息之前,在@foreach
使用@if @else
塊來確定流是否為null
。
您還可以通過從數據中刪除空值來過濾控制器中的脫機流。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.