0

私はまだ学んでいるので、これがばかげた質問であれば許してください。

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

"

4

0 に答える 0