Route
Mi az a route?
A route-ok segítségével tudjuk irányítani, hogy melyik url címen melyik tartalom töltődjön be. A route-kat vagy másnéven útvonalakat a routes/web.php fájlban állíthatjuk be. Két alap típusa van: get és post. Vannak további típusok is, mint pl.: put, patch, delete, options.
Mikor melyik route típus használjuk?
get
Adatok lekérdezésére szoktuk használni, könyvjelzőként el tudjuk menteni. Az adatok az url-ben látszódnak. Nem módosít adatokat a szerveren, böngészőből közvetlenül meghívható.
Példa get route létrehozásához főoldal esetén (routes/web.php):
Route::get('/', function () {
//...
});
post
Adatok küldésére/módosítására szoktuk használni, például form adatok fogadása. Az adatok az url-ben NEM látszódnak, mert a kérés törzsében (body) vannak.
Példa post route létrehozásához (routes/web.php):
Route::post('/', function () {
//...
});
Egyszerű Példák
A /hello url get-es példa:
Route::get('/hello', function () {
//...
});
A /bejelentkezes url post-os példa:
Route::post('/bejelentkezes', function () {
//...
});
Példa tartalom megjelenítésre
Ha szeretnénk valamilyen tartalmat megjeleníteni egy adott url-n, akkor a view() függvénnyel kell visszatérni, bemenő paramétereként kell megadni a blade fájl nevét (blade.php kiterjesztés nélkül). Ezt a módszert csak akkor alkalmazzuk, hogyha egyszerű statikus HTML oldalt akarunk megjeleníteni
Route::get('/bejelentkezes', function () {
return view('valami');
});
Példa Controllerel való nézet megjelenítésre
Először hozzuk létre a controllert (ha még nem létezne). Ebben a példában a PeldaController-elel dolgozunk.
routes/web.php
A /valami url-t a PeldaController-nek az index nevű metódusa fogja irányítani.
use App\Http\Controllers\PeldaController;
...
Route::get('/valami',[PeldaController::class,'index']);
....
app/Http/Controllers/PeldaController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PeldaController extends Controller{
public function index(){
return view("pelda");
}
}
A resources/views/valami.blade.phptartalma:
<p>Helló world!</p>