私はまだ学んでいるので、これがばかげた質問であれば許してください。
JSON の「タイトル」プロパティの取得に問題があり、取得したエラーから
「オブジェクト以外のページ/results.blade.php:28 のプロパティ 'tag' を取得しようとしています」
$tags はオブジェクトではなく配列であることを理解しています。
$tags で foreach を実行しました
foreach ($result->tags as $tag)
$tag に必要なデータが含まれていることも知っています。
私の質問は、配列内にある名前のない JSON にアクセスするにはどうすればよいですか?
title プロパティは「tags」配列内にあり、オブジェクトではないためアクセスできないというエラーがブラウザから表示されます。
コードを教えてください。
これが私のコントローラーです
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use GuzzleHttp\Client;
class PageController extends Controller
{
// public function __construct() {
// $this->middleware('auth');
// }
public function index() {
$user = Auth::user();
return view('pages/home', compact('user'));
}
public function result(Request $request) {
// https://api.unsplash.com/search/photos?query=philippines&client_id=hb-UQIJ2DMaPckaJOO5nxrC90uYnaVRGTMz3S8WHzJY
$input = $request->input('query');
$client = new Client();
// var_dump($input); die;
// dd($input);
// var_dump($request->input('query')); die;
$res = $client->request('GET', "https://api.unsplash.com/search/photos", [
"query" => [
"query" => $input,
"client_id" =>"hb-UQIJ2DMaPckaJOO5nxrC90uYnaVRGTMz3S8WHzJY",
"per_page" => 100
]
]);
$data = $res->getBody();
$data = json_decode($data);
$filteredData = [];
// return $data->results;
foreach($data->results as $result) {
$urls = $result->urls;
array_push($filteredData,$result);
foreach ($result->tags as $tag) {
$tags = $result->tags;
array_push($filteredData, $tag);
// dd($tag);
foreach($tag as $key => $value) {
if($key === 'title') {
array_push($filteredData,$value);
array_push($filteredData,$key);
// dd($filteredData);
}
}
}
$user = Auth::user();
return view('pages/results', compact('user', 'filteredData', 'input'));
}
}
ここに私の刃があります
@extends('layouts/main')
@section('title')
Design Storm - Inspiration for Developers
@endsection
@section('content')
<div id="site-section">
<div class="container">
<div id="results">
<div>
<div class="search-container">
<form action="/results" method="POST">
@csrf
<input class="search" type="text" value="{{$input}}" placeholder="Search" name="query">
</form>
</div>
<div class="boxes">
<div class="row">
@foreach ($filteredData as $result)
<div class="col-md-3">
<div class="box">
<div style="position: relative; background: url('{{$result->urls->small}}') no-repeat center center;-webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;background-size: cover; height: 200px;">
<div class="add-btn "><i class="fa fa-check" aria-hidden="true"></i></div>
</div>
@foreach ($filteredData as $tag)
<h4>
{{$filteredData->tag->title}}
</h4>
@endforeach
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
"