Curs Php-mysql

- 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
Ce atribut e folosit in tag-ul <img> pentru adresa imaginii?
href src rel
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
Care din aceste coduri CSS ascunde elementul in pagina?
display: none; display: inline; position: relative;
#id {
  display: none;
}
Ce instructiune opreste executia lui while() sau for() ?
continue prompt() break
for(var i = 0; i< 8; i++) {
  if(i > 1) break;
  alert(i);
}
Indicati functia utilizata pentru a crea constante.
define() include() defined()
define("CONSTANT_NAME", "value");
echo CONSTANT_NAME;
Care este forma de plural a substativului "class" (clasa)?
classes clases clasis
This school has three classes.
- Scoala asta are trei clase.
Care este pluralul substativului "voz" (voce)?
vose voze voces
Escuché dos voces.
- Am auzit doua voci.
Laravel tutorial - Routing

Last accessed pages

  1. Creare formulare (5439)
  2. Curs si Tutoriale JavaScript (62885)
  3. Ir a + Infinitiv Forma de viitor (970)
  4. Gramatica limbii spaniole. Indrumator si prezentare generala (39608)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (64549)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (5360)
  2. Curs HTML gratuit Tutoriale HTML5 (4430)
  3. Curs si Tutoriale JavaScript (3620)
  4. Prezentul simplu si continuu - Present Tense Simple and Continuous (3503)
  5. Curs PHP MySQL, Tutoriale si Scripturi PHP (3463)