Tartalomjegyzék

< Laravel

Laravel kliens

Bevezetés

A kliensnek is szüksége van útvonalra, amit a web.php fájlban állítunk be. A REST API és a kliens lehet egyetlen projektben. A lekérést a kontrollerben írjuk meg. A blade sablonban rendereljük.

Kontroller készítése

php artisan make:controller EmployeeController

A Http használatbavétele:

use Illuminate\Support\Facades\Http;
app/Http/Controllers/EmployeeController.php
<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
 
class EmployeeController extends Controller
{
    public function showEmployee() {
        $url = 'http://localhost:8000/api/employees';
        $res = Http::get($url);
        return view('employee')->with('employees', $res->body());
    }
}

Blade sablon készítése

resources/views/employee.blade.php
<p>
    {{ $employees }}
</p>

Útvonal beállítása

routes/web.php
...
 
use App\Http\Controllers\EmployeeController;
 
...
 
Route::get('employees', [EmployeeController::class, 'showEmployee']);

Lehetséges kimenet:

[{"id":1,"name":"Vala Ir\u00e9n","city":"Szeged","salary":"347.0","created_at":"2022-09-02T19:37:29.000000Z","updated_at":"2022-09-02T19:37:29.000000Z"},
{"id":2,"name":"Vala Ir\u00e9n","city":"Szeged","salary":"422.0","created_at":"2022-09-02T19:41:48.000000Z","updated_at":"2022-09-02T19:42:24.000000Z"}]

A sablon bővítése

Objektumként fogjuk kezelni az érkezett adatokat:

app/Http/Controllers/EmployeeController.php
<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
 
class EmployeeController extends Controller
{
    public function showEmployee() {
        $url = 'http://localhost:8000/api/employees';
        $res = Http::get($url);        
        return view('employee')->with('employees', $res->object());
    }
}

A $res objektumon ha futtatom az object() metódust, akkor objektumot kapunk, ha collect() metódust futtatjuk kollekciót kapunk.

Ha objektum a névre hivatkozás:

{{ $emp->name }}

Ha kollekció a névre hivatkozás:

{{ $emp['name'] }}
resources/views/employee.blade.php
<table border="1"> 
    <tr>
        <th>Név</th>
        <th>Település</th>
        <th>Fizetés</th>
    </tr>
    @foreach ($employees as $emp)
    <tr>
        <td>{{ $emp->name }}</td>
        <td>{{ $emp->city }}</td>
        <td>{{ $emp->salary }}</td>
    </tr>
    @endforeach
 
</table>

Lehetséges kimenet

Linkek