【发布时间】:2023-01-08 18:20:21
【问题描述】:
我正在从 imdb api 获取数据,当我尝试在刀片视图中显示数据时,我遇到了很多错误。
可能是因为我不确定我从 api 得到的响应是什么。
请告诉我,并提前感谢您抽出宝贵时间阅读我的问题。
所以这里有一些来自 api 的可用示例响应:
{
"d": [
{
"i": {
"height": 1500,
"imageUrl": "https://m.media-amazon.com/images/M/MV5BYTRiNDQwYzAtMzVlZS00NTI5LWJjYjUtMzkwNTUzMWMxZTllXkEyXkFqcGdeQXVyNDIzMzcwNjc@._V1_.jpg",
"width": 1102
},
"id": "tt0944947",
"l": "Game of Thrones",
"q": "TV series",
"rank": 36,
"s": "Emilia Clarke, Peter Dinklage",
"v": [
{
"i": {
"height": 720,
"imageUrl": "https://m.media-amazon.com/images/M/MV5BZTg4YzdjNTctNDg5Mi00ZmU1LTkzOWEtNmMyNDBjZjNhNTJiXkEyXkFqcGdeQXRyYW5zY29kZS13b3JrZmxvdw@@._V1_.jpg",
"width": 1280
},
"id": "vi59490329",
"l": "Official Series Trailer",
"s": "3:19"
},
{
"i": {
"height": 1080,
"imageUrl": "https://m.media-amazon.com/images/M/MV5BMTljMTZmNDUtNTEzNy00NDgyLTk2N2QtOTI3MGQyNWE0MTI5XkEyXkFqcGdeQWplZmZscA@@._V1_.jpg",
"width": 1920
},
"id": "vi1097842713",
"l": "The 8 Most Surprising Moments From \"Game of Thrones\" to Rewatch",
"s": "3:39"
},
{
"i": {
"height": 720,
"imageUrl": "https://m.media-amazon.com/images/M/MV5BMTg0ODM4NTc3OV5BMl5BanBnXkFtZTgwODAwODE1OTE@._V1_.jpg",
"width": 1280
},
],
"q": "game of thr",
"v": 1
}
我尝试使用几种方法在我的刀片视图中显示数据,我正在尝试的最新方法是 blade.php:
@foreach ($data as $item)
{{$item['d']}}
@endforeach
我得到这个作为回应:
{“数据”:{“d”:[{“i”:{“高度”:4096,“imageUrl”:“https://m.media-amazon.com/images/M/MV5BMTg4NDA1OTA5NF5BMl5BanBnXkFtZTgwMDQ2MDM5ODE@。V1.jpg","width":2764},"id":"tt2582782","l":"Hell or High Water","q":"feature","qid":"movie","rank": 1332,"s":"Chris Pine, Ben Foster","y":2016},{"i":{"height":755,"imageUrl":"https://m.media-amazon.com/图片/M/MV5BMjM5ODQ5Nzc3OF5BMl5BanBnXkFtZTgwOTQzMzM4NjE@。V1.jpg","宽度":509}
我的控制器中的功能是这样的:
public function api(Request $request) { $userInput = $request->input(); $response = Http::withHeaders( [ "x-rapidapi-host"=> "xxxxxxxxx", "x-rapidapi-key"=> "xxxxxxxxxxx", ] )->get("https://imdb8.p.rapidapi.com/auto-complete?q=",$userInput)->json(); return json_encode(array('data'=>$response)); }我也累了:
return view('view',['data'=>$response]);但有不同的错误,如:
非法偏移类型。
并尝试了其他方法,但也没有成功。
我错过了什么??请帮忙。
【问题讨论】:
-
可能是
$userInput为空,因为当您不向其传递任何参数时,$request->input()返回空数组。 -
你完全正确,先生,但现在当我得到数据时,不仅仅是一个空的响应,我无法在我的刀片视图中显示它,它只显示如下:
{"data":{"d":[{"i":{"height":4096,"imageUrl":"https:\/\/m.media-amazon.com\/images\/M\/MV5BMTg4NDA1OTA5NF5BMl5BanBnXkFtZTgwMDQ2MDM5ODE@._V1_.jpg","width":2764},"id":"tt2582782","l":"Hell or High Water","q":"feature","qid":"movie","rank":1332,"s":"Chris Pine, Ben Foster","y":2016},{"i":{"height":755,"imageUrl":"https:\/\/m.media-amazon.com\/images\/M\/MV5BMjM5ODQ5Nzc3OF5BMl5BanBnXkFtZTgwOTQzMzM4NjE@._V1_.jpg","width":509} -
@JSTECH 能否请您演示在我的刀片视图中正确显示数据的正确方法?例如我想显示图像和排名
-
您的响应数据结构不正确,请解决此问题。我想弄清楚你的问题。 (请编辑问题)
-
@JSTECH 在问题中我提供了 api 示例响应,而这些响应又由 imdb.api 提供。我将添加我在上方评论中显示的回复。