Как я могу получить свойство не-объекта с помощью JSON

#php #laravel-8

#php #laravel-8

Вопрос:

Я все еще учусь, так что простите меня, если это глупый вопрос, но, похоже, я сам не могу найти решение.

У меня возникли проблемы с получением свойства «title» JSON и из-за ошибки, которую я получил

«Попытка получить свойство ‘tag’ для страниц, не являющихся объектами/results.blade.php:28»

Я понимаю, что $tags — это массив, а не объект.

Я выполнил foreach с $tags с

foreach ($result->теги как $tag)

Я также знаю, что $tag содержит нужные мне данные, потому что, когда я умираю и сбрасываю $tag, я получаю это

введите описание изображения здесь

Мой вопрос в том, как мне получить доступ к неназванному JSON, который находится внутри массива?

Свойство title находится внутри массива «теги», и браузер выдает мне сообщение об ошибке, что я не могу получить к нему доступ, потому что это не объект.

Не могли бы вы, пожалуйста, помочь мне с кодом?

Вот мой контроллер

     <?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use GuzzleHttpClient;

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=philippinesamp;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
  

«

Комментарии:

1. Измените это {{$filteredData->tag->title}} в своем шаблоне на это {{$tag->title}}

2. Я сделал это, и это дало мне это сообщение об ошибке «Неопределенное свойство: stdClass:: $title» 🙁