Laravel Api- Preluare Date dintr-un catalog online

laravel

(Pîrvan Marian) #1

Salut , trebuie sa fac o aplicatie laravel care sa :
preia date in format json dupa un catalog online ce imi ofera acces, intrebarea este : imi puteti recomanda, vrun tutorial, packet sau ceva pentru toata treaba asta?
Multumesc in avans…


(Cosmin) #2

Da, Laracasts ar fi un inceput.


(Pîrvan Marian) #3

Urmez, testez si invat deja de la Laracasts.


(Igor Mardari) #4

Iti recomand package-ul Guzzle, care se integreaza si cu Laravel, foarte usor, datorita composer. E perfect pentru a lucra cu REST API.


(Pîrvan Marian) #5

Am reusit marea problema pe care o am acum, ca in controler imi afiseaza datele… insa nu resesc sa trec prin blade si aplic stilizare pentru fiecare element in parte…
Mi-a iesit sa ofer stilizare pentru elementele unei matrici, cu un foreach insa cu guzzle in cazul meu un obiect afiseaza valorile de tip string , folosesc tagul

 insa e doar json format, eu trebuie sa il stilizez.
      

(Igor Mardari) #6

Nu am inteles. cum arata JSON-ul? Ce ai in vedere prin faptul ca Guzzle afiseaza valorile de tip string, si foloesti tagul?


(Pîrvan Marian) #7
 public function main()
    {
        /** @var \GuzzleHttp\Client $client */
        $client = new \GuzzleHttp\Client();

        $url = 'https://api.site.com/12321312/dasdasdasd';
        /** @var \GuzzleHttp\Psr7\Response $res */
        $res = $client->request('GET', $url);
        /** @var \GuzzleHttp\Psr7\Stream $resBody */
        $resBody = $res->getBody();
        $cData = json_decode($resBody);
        // return '<pre>'.print_r( $cD, true).'</pre>';
        return view('welcome', ['cD' => $cD]);

    }

imi afiseaza nume :
valoare
titlu :slight_smile:

valoare …
ma intereseaza sa imi afiseze , posibilitate ca sa ofer stilizare pentru fiecare camp json ,
initial stiu cum sa fac asta cu foreach

<body>
{{ $companyData->nume_firma }}
</body>

(Igor Mardari) #8

Tot nu am înțeles.
Explici foarte prost.
Cum adică sa afișeze posibilitatea ca sa oferi stilizare pentru fiecare câmp json ?

Arata cum ai făcut pentru stilizare pentru matrice, ca sa înțeleg cu ce e diferit fata de cazul de fata. Eu nu vad vreo diferența.
json_decode(), îți permite sa transformi rezultatul în obiect sau în array, prin parametrul 2. Și din moment asta, e un obiect sau array obișnuit, nu are nicio treaba Guzzle aici.

"Stilizare fiecare element în parte ", asta de mai jos, e singurul lucru care îmi vine în cap, dar e absurd.

@foreach ( $rows as $row)  
<span style="font-weight : bold">{{ $row->nume }}</span>
@endforeach

(Pîrvan Marian) #9

Imi cer scuze pentru faptul ca am explicat prost…

am urmatorul controller :

 <?php

namespace App\Http\Controllers;

use App\Card;

use Illuminate\Http\Request;

use  App\Http\Controllers\Controller;

class CardsController extends Controller
{
 public function index()
 {
  $cards =Card::all();

     return view('cards.index',compact('cards'));
 }
    public  function  show( Card $card)
    {
//     $card = Card::with('notes.user')->find(1);
//
////        $card->load('notes.user');



      




        return view('cards.show', compact ('card'));
    }
}

am urmatorul view :

 @extends('layout')

@section('content')
    <h1>
        {{ $card->title  }}
    </h1>
<ul class="list-group">
    @foreach($card->notes as $note)
        <li class="list-group-item">
            {{ $note->body }}
        <a href="#" style="float:right">{{ $note->user_id }}</a>
        </li>
    @endforeach
</ul>
    <h3> Add a new Note</h3>
    <form method="POST" action="/cards/{{$card->id }}/notes ">
        <input type="hidden" name="_token" value="{!! csrf_token() !!}">
        <div class="form-group">


        <textarea name="body" class="form-control"></textarea>
        </div>

        <div class="form-group">
            <button type="submit" class="btn btn-primary">Add Note </button>
        </div>
    </form>
    </div>


    @stop

========================
In cazul meu $card->id , afiseaza id ul si $body din $card…
Acelasi lucrul vreau sa pot face si cu codul preluat din Json.
Multumesc foarte mult pentru ajutorul acordat pana acum…


(Igor Mardari) #10

Si $body ce conține in cazul tău?
Te referi cumva sa ai datele ierarhic, adică în forma de arbore? Daca da, asta depinde de cum este structurat json-ul, dar dacă e structurat bine, atunci poți face asa ca și aici, cu foreach în foreach.


(Pîrvan Marian) #11

[quote=“Pirvan_Marian, post:7, topic:3253”]
$url = ‘https://api.site.com/12321312/dasdasdasd’;
/** @var \GuzzleHttp\Psr7\Response $res /
$res = $client->request(‘GET’, $url);
/
* @var \GuzzleHttp\Psr7\Stream $resBody */
$resBody = $res->getBody();
$cData = json_decode($resBody);
// return ‘<pre>’.print_r( $cD, true).’</pre>’;
return view(‘welcome’, [‘cD’ => $cD]);

}
[/quote
Corect, functioneaza ,multmumesc frumos, raman dator cu o bere, doua.


(Ionuț Staicu) #12

Acordă două minute citirii ghidului despre cum să ceri ajutor, în special partea cu postarea blocurilor de cod.


(Pîrvan Marian) #13

M-am simtit cu musca pe caciula inca de cand l-ai scris si l-am citit, mersi.