-
Transmitere date catre fisiere View
-
Folosire Date predefinite cu toate view-urile
Intelegere Views
Views (sau Template-uri ) in Laravel sunt fisiere '.php' stocate in directorul "
resources/views", si sunt in general folosite pentru a crea continutul paginii afisata in browser. Aceste fisiere pot contine cod HTML, CSS, JavaScript si PHP.
In Laravel, exista doua tipuri de view pe care le puteti folosi:
Blade (cu extensia "
.blade.php" in numele fisierului) rendat cu sistemul de template Blade; sau simplu ".php" (care nu va prelucra codul de tip Blade Template).
- Exemplu simplu de utilizare fisier view Blade:
1. Copiati urmatorul cod si salvati-l intr-un fisier
resources/views/light.blade.php.
<html>
<body>
<h1>View is an effect, Vision is the source</h1>
</body>
</html>
2. Adaugati urmatoarea linie in fisierul
routes/web.php pentru a defini route-ul pentru view-ul de mai sus.
Route::get('/light', function(){
return view('light');
});
3. Accesati in browser urmatorul URL pentru a vedea rezultatul view-ului.
//localhost:8000/light
- Rezultatul va apare precum se vede in imaginea de mai jos.
Daca fisierul view este intr-un sub-director din directorul "resources/views", de exemplu "
resources/views/pages/name.blade.php", adaugati numele sub-directorului inainte de numele fisierului:
return view('pages.name');
Pentru a verifica daca un view exista, puteti folosi metoda
exists() a
clasei View din Facades. Metoda va returna true daca view-ul exista:
use Illuminate\Support\Facades\View;
if(View::exists('pages.test')){
//
}
Transmitere date catre fisiere View
Puteti utiliza variabile in fisierele template din
resources/views/, folosind aceasta sintaxa:
{{$variable_name}}, apoi adaugati un array cu perechi
nume=>valoare ca al doilea argument in metoda view().
"Nume" in array trebuie sa corespunda cu numele variabilei in template.
- Exemplu simplu de Blade view:
1. Copiati si salvati urmatorul cod intr-un fisier
resources/views/greeting.blade.php.
<html>
<head>
<title>{{$title}}</title>
</head>
<body>
<h1>Hello {{$name}}</h1>
</body>
</html>
2. Adaugati urmatoarea linie in fisierul
routes/web.php pentru a crea route-ul pentru view-ul de mai sus.
Route::get('/greeting', function(){
$vars =['title'=>'Greetings', 'name'=>'Me'];
return view('greeting', $vars);
});
3. Accesati in browser urmatorul URL pentru a vedea rezultatul view-ului.
//localhost:8000/greeting
- Rezultatul va apare precum se vede in imaginea urmatoare.
Folosire Date predefinite cu toate view-urile
Daca vreti sa transitei aceleasi date la toate view-urile, folositi metoda
view()->share().
Metoda share() preia doua argumente: key si valoare.
De obicei metoda
share() poate fi apelata din metoda
boot() a unei
clase ServiceProvider.
Se poate folosi orice clasa ServiceProvider, cum ar fi:
AppServiceProvider.
- Exemplu:
1. Creaza doua fisiere view:
test.blade.php si
test2.blade.php cu acelasi cod, in directorul "
resources/views/".
- Copiaza urmatorul cod in amandoua fisierele.
<html>
<body>
<h1>Share {{$state}}</h1>
<h2>Receive {{$gift}}</h2>
</body>
</html>
2. Modificati codul metodei
boot() din fisierul
app/Providers/AppServiceProvider.php, cum este aratat mai jos (Aici, am folosit metoda
share() si datele pe care le-am adaugat vor putea fi utilizate in toate view-urile).
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider {
//Bootstrap any application services.
//@return void
public function boot(){
view()->share('state', 'Peace');
view()->share('gift', 'Love');
}
//Register any application services.
//@return void
public function register(){
//
}
}
3. Adaugati urmatoarele linii in fisierul
routes/web.php.
Route::get('/test', function(){
return view('test');
});
Route::get('/test2', function(){
return view('test2');
});
4. Vizitati urmatoarele adrese URL:
//localhost:8000/test
//localhost:8000/test2
- Rezultatul pentru ambele adrese va aparea precum se vede in imaginea urmatoare.
- Documentatie:
Laravel - Views