- Parametri Route
- Numire Rute

Functia esentiala a oricarei aplicatii web este de a primi cereri de la utilizator si livra raspunsuri, de obicei prin HTTP(S).
Routing este un sistem destinat sa trimita cererea catre un controller.
"Rutele" in Laravel 5.5 pot fi definite in fisierul "routes/web.php". Daca deschizi acest fisier cu un editor de text veti vedea un cod ca acesta:
Route::get('/', function(){
  return view('welcome');
});
Aici 'Route' este o clasa care are o metoda statica get() ce returneaza o metoda view() care prezinta o pagina web creata in directorul 'resources/views/'.
Cand un utilizator visiteza prima pagina, va fi afisat continutul din 'welcome.blade.php' (stocat in directorul views).
Poti trimite un alt respuns in loc de view(). De exemplu:
Route::get('/', function(){
  return 'welcome';
});
Va returna doar cuvantul "welcome" pe pagina principala.
Daca vrei sa modifici pagina principala, editeaza fisierul 'welcome.blade.php' in directorul "resources/views/".

Afisare continut in functie de adresa URL

Folosind metoda Route::get(), poti afisa continut pe pagina in functie de adresa URL.
Sa cream inca o ruta pentru o pagina "test".
- Adaugati acest cod in "routes/web.php":
//home-page
Route::get('/', function(){
  return view('welcome');
});

//test page
Route::get('/test', function(){
  return view('test');
});
- In directorul "resources/views/" creaza un fisier "test.blade.php" cu acest continut:
<!doctype html>
<html lang="{{app()->getLocale()}}">
<head>
<meta charset="utf-8">
<title>Test page</title>
</head>
<body>
<h1>Something about nothing</h1>
</body>
</html>
Deschide interfata Command Line (CMD in Windows), navigheaza catre directorul unde este instalat Laravel si ruleaza aceasta comanda pentru a porni serverul PHP integrat.
php artisan serve
Acum, daca accesezi pagina "test" in browser, de exemplu:
//localhost:8000/test/
Va afisa o pagina ca in aceasta imagine:
Laravel route test page
Folosind un framework, nu e nevoie sa creezi un fisier view pentru fiecare pagina; acesta este doar un exemplu pentru a vedea cum functioneaza 'Route'.

Parametri Route

Daca adresa URI are parametri, acestia pot fi preluati in functia "callback" definita la Route.
- Exemplu: Preia si afiseaza ID-ul "paginii" adaugat in URL.
Route::get('page-{id}', function($id){
  return 'Page id: '. $id;
});
Daca adaugi codul de mai sus in "routes/web.php", orice argument adaugat dupa "public/page-" in URL va fi retinut in $id, si putem folosi acel parametru pentru procesare in continuare. Aici doar il afisam.

Se pot folosi si parametri Route optionali, adaugand semnul "?" dupa numele parametrului:
Route::get('page{id?}', function($id ='noid'){
  return 'Page id: '. $id;
});
Se pot folosi expresii Regexp pentru a executa un route doar daca un parametru indeplineste anumite cerinte; adaugand metoda where().
Route::get('page-{name}', function($name){
  return 'Page name: '. $name;
})->where('name', '[A-z-]+');
De asemenea, se pot defini mai multi parametri la un route:
Route::get('/{name}/{id?}', function($name, $id=1){
  return 'Page name: '. $name .', id: '. $id;
})->where(['name'=>'[A-z-]+', 'id'=>'[0-9]+']);

Numire Rute

Laravel permite sa denumesti fiecare route cu un nume care va permite sa faci referire la acel Route fara sa adaugi in mod explicit adresa URL. Astfel, poti da nume simple unor rute complexe, apoi se pot crea link-uri simplu folosind direct numele definit, si de asemenea, nu e nevoie sa rescrii link-ul paginii daca adresa URI se schimba.
- Poti defini numele route-ului folosind metoda name().
Route::name(name_id)->get('/{name}/{id?}', function($name, $id=1){
  return 'Page name: '. $name .', id: '. $id;
})->where(['name'=>'[A-z-]+', 'id'=>'[0-9]+']);
Pentru a crea o adresa URL pentru acest route (numit 'name_id'), se foloseste functia route(), cu numele si parametri necesari intr-un array.
De exemplu, intr-un fisier view poti adauga acest cod pentru a crea doua link-uri pentru route-ul "name_id":
<?php
$url1 = route('name_id', ['name'=>'test']); //here id is not specified because it is optional
$url2 = route('name_id', ['name'=>'tutorial', 'id'=>2]);
?>
<a href='{{$url1}}' title='test'>Test</a>
<a href='{{$url2}}' title='tutorial'>Tutorial</a>
- Va crea doua link-uri asa:
<a href='http://localhost:8000/test/' title='test'>Test</a>
<a href='http://localhost:8000/tutorial/2' title='tutorial'>Tutorial</a>
• Pentru a face adrese URL relative, adauga "false" ca al treilea argument in functia route():
route('route_name', array(), false)
- Va crea un link asa:
<a href='/tutorial/2' title='tutorial'>Tutorial</a>
Asemanator, pentru a redirectiona catre un route denumit, se foloseste metoda redirect():
return redirect()->route('name_id', ['name'=>'test']);

• Metoda get() este folosita pentru cereri HTTP(S) GET, dar se pot defini route-uri pentru fiecare tip de cerere, cum ar fi POST, PUT sau DELETE.

Tipuri de Route in Laravel

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

//for multiple HTTP verbs
Route::match(['get', 'post'], '/', function(){
  //
});

//route that responds to all HTTP verbs
Route::any('foo', function(){
  //
});
- Documentatie: Laravel - Routing

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care meta tag se foloseste pentru scurta descriere a paginii?
<meta content="..."> <meta description="..."> <meta http-equiv="...">
<meta name="description" content="70-160 caractere ce descriu continutul paginii" />
Ce proprietate CSS opreste efectul dat de "float"?
clear text-align position
#some_id {
  clear: both;
}
Clic pe metoda ce creaza un array cu toate elementele din pagina cu un anumit nume de tag.
getElementsByName() getElementById() getElementsByTagName()
var divs = document.getElementsByTagName("div");
var nr_divs = divs.length;
alert(nr_divs);
Indicati functia PHP ce returneaza numarul de elemente dintr-un array.
is_[) count() strlen()
$arr =[7, 8, "abc", 10);
$nri = count($arr);
echo $nri;        // 4
Indicati adverbul corespunzator adjectivului din paranteza in propozitia: "I live (happy)".
happly happily hapily
I live happily.
- Traiesc fericit (in mod fericit).
Indicati adverbul corespunzator adjectivului din paranteza in propozitia: "Vivo (feliz)".
felizamente felizmente felices
Vivo felizmente.
- Traiesc fericit (cu fericire).
Laravel tutorial - Routing

Last accessed pages

  1. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (22066)
  2. Gramatica limbii engleze - Prezentare Generala (72291)
  3. Prepozitii - Prepositions (7819)
  4. HTML5 - Elemente si atribute noi in formular (1341)
  5. HTML5 - Tag-uri Noi (1020)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (2613)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1259)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (827)
  4. Gramatica limbii spaniole. Indrumator si prezentare generala (807)
  5. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (744)