Laravel es un framework PHP basado en MVC . En la arquitectura MVC, V significa Vista . La Vista son datos que se mostrarán al usuario en su navegador y el usuario puede interactuar con ellos. Es simplemente una interfaz proporcionada al usuario para la interacción.
Laravel utilizó un potente motor de plantillas llamado Blade . La extensión para este archivo que se usa aquí es filename.blade.php . Aunque se usan algunas directivas y formatos de diseño con un blade para aprovechar este motor de plantillas, aún nos permite escribir PHP simple en el archivo de vista.
La principal ventaja de usar Blade Templating Engine es que proporciona herencia de plantillas. Con esto, podemos crear una página de diseño maestro, que se convertirá en la base para otras páginas. Entonces, la página maestra se convierte en la principal de todas las páginas secundarias a las que la extendemos. EN este artículo cubriremos los siguientes temas:
- Comprobar existencia de vista
- Crear la primera vista disponible
- Crear y mostrar datos en una vista
- Compartir datos con todas las vistas
- Ver compositor
- Ver creador
1. Verificar la existencia de la vista: para verificar si la vista existe, hay un método llamado ‘ existe() ‘.
- Sintaxis:
View::exists('gfg');
En lugar de ‘ gfg ‘, puede especificar el nombre de la vista que desea ver si existe o no. Esto generará ‘ verdadero ‘ si la vista existe y ‘ falso ‘ en caso contrario.
- Ejemplo:
- Cree una vista en el directorio ‘ resources/views ‘ con el nombre ‘ gfg.balde.php ‘. Escriba el siguiente código en él.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
<
h3
>This is my View</
h3
>
</
body
>
</
html
>
- Cree un controlador con el nombre GfGController usando el siguiente comando ‘ php artesanal make:controller GfGController ‘ y escriba el siguiente código en él.
Nota: La fachada de vista usa Illuminate\Support\Facades\View; debe definirse en el archivo del controlador.<?php
namespace
App\Http\Controllers;
use
Illuminate\Http\Request;
use
Illuminate\Support\Facades\View;
class
GfGController
extends
Controller
{
public
function
index() {
if
(View::exists(
'gfg'
)) {
return
view(
'gfg'
);
}
else
{
return
'No such view exist.'
;
}
}
}
?>
- Escriba el código a continuación en el archivo ‘ web.php ‘ en el directorio ‘ruta’.
Route::get('/', 'GfGController@index');
Nota: Comente o elimine las rutas definidas previamente.
- Cree una vista en el directorio ‘ resources/views ‘ con el nombre ‘ gfg.balde.php ‘. Escriba el siguiente código en él.
- Producción:
- Si la vista hace:
- Si la vista no existe:
- Si la vista hace:
2. Crear la primera vista disponible Si hay muchas vistas en una aplicación Laravel, entonces usando el método ‘ first() ‘, podemos crear la vista que está disponible primero.
- Sintaxis:
view()->first(['main', 'gfg', 'article']);
-
View::first(['main', 'gfg', 'article']);
Nota: Para esta sintaxis, deberá especificar el uso de la fachada de la vista Illuminate\Support\Facades\View; en el archivo del controlador.
- Ejemplo:
- Crear una vista en recursos/vistas gfg.balde.php. Escriba el siguiente código en él.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
<
h3
>This is the First Available View</
h3
>
</
body
>
</
html
>
- Cree un controlador con el nombre GfGController usando el siguiente comando php artesanal make:controller GfGController y escriba el siguiente código en él.
Nota: La fachada de vista usa Illuminate\Support\Facades\View; debe definirse en el archivo del controlador.<?php
namespace
App\Http\Controllers;
use
Illuminate\Http\Request;
use
Illuminate\Support\Facades\View;
class
GfGController
extends
Controller
{
public
function
index() {
return
View::first([
'main'
,
'gfg'
,
'article'
]);
}
}
?>
- Escriba el código a continuación en el archivo web.php en el directorio de ruta .
Nota: Comente o elimine las rutas definidas previamente.Route::get('/', 'GfGController@index');
- Crear una vista en recursos/vistas gfg.balde.php. Escriba el siguiente código en él.
- Producción:
3. Crear y mostrar datos en una vista: para mostrar cualquier tipo de datos almacenados en una variable, Blade proporciona una manera de hacerlo y eso es mediante el uso de ‘ {{ }} ‘, es decir, llaves dobles. Las declaraciones aquí se envían a través de la función htmlspecialchars de PHP que convierte los caracteres especiales en entidades HTML. Esto se hace para evitar ataques XSS (Cross Site Scripting) y Blade lo hace automáticamente .
- Sintaxis:
My name is {{ $name }} and my age is {{ $age }}
La variable $nombre y $edad serán reemplazadas por los valores almacenados en esas variables. Si no queremos que se escapen los datos, podemos usar {!! !!} . Esto evitará que los datos se escapen pero ahora no están protegidos por ataques XSS .
- Sintaxis:
My name is {!! $name !!} and my age is {!! $age !!}
- Ejemplo:
- Escriba el siguiente código en el archivo web.php en el directorio de rutas .
Route::get('/', function() { return view('gfg')->with('name' => 'Aakash')->with('age' => '21'); }
- Ahora, creemos un archivo de vista gfg.blade.php en el directorio de recursos/vistas con el nombre especificado en el archivo de ruta en el paso anterior y escribamos el siguiente código en él.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
<
h3
>My name is {{ $name }} and my age is {{ $age }}</
h3
>
</
body
>
</
html
>
- Escriba el siguiente código en el archivo web.php en el directorio de rutas .
- Producción:
4. Compartir datos con todas las vistas: si desea que se compartan entre todas las diferentes vistas en una aplicación Laravel, puede hacerlo utilizando el método de compartir . Este es un método de vista de fachada , por lo que deberá agregar use Illuminate\Support\Facades\View; esta línea.
- Sintaxis:
View::share(‘data’, ‘This is Shared Data’);
Aquí, el primer argumento de la función es la clave y el segundo argumento de la función es el valor.
- Ejemplo:
- Cree tres archivos de vista diferentes en el directorio de recursos/vistas con el nombre gfg , main y article y escriba el código a continuación para el archivo de vista respectivo.
Nota: @include es una directiva de Laravel para incluir otra vista dentro de una vista. - gfg.blade.php
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
@include('shared')
<
h3
>This is GfG View</
h3
>
</
body
>
</
html
>
- principal.blade.php
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>Main | GeeksforGeeks</
title
>
</
head
>
<
body
>
@include('shared')
<
h3
>This is the Main View</
h3
>
</
body
>
</
html
>
- artículo.blade.php
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>Article | GeeksforGeeks</
title
>
</
head
>
<
body
>
@include('shared')
<
h3
>This is the Article View</
h3
>
</
body
>
</
html
>
- Cree tres archivos de vista diferentes en el directorio de recursos/vistas con el nombre gfg , main y article y escriba el código a continuación para el archivo de vista respectivo.
- Ahora, cree otra vista con el nombre shared.blade.php y escriba el código a continuación.
<
h2
>Welcome, {{ $data }}</
h2
>
- Ahora, abra el archivo AppServiceProvider.php en el directorio app/Providers . Y en la función de arranque, escriba el siguiente código.
<?php
namespace
App\Providers;
use
Illuminate\Support\ServiceProvider;
use
Illuminate\Support\Facades\View;
class
AppServiceProvider
extends
ServiceProvider
{
/* Register any application services. */
public
function
register()
{
}
/* Bootstrap any application services. */
public
function
boot()
{
View::share(
'data'
,
'This is Shared Data'
);
}
}
?>
Aquí, hemos pasado la clave como datos con el valor This is Shared Data . Esto se hace porque hemos especificado la variable $data en el archivo shared.blade.php . En el paso anterior. La variable $data se reemplazará con This is Shared Data .
- Ahora, especifique rutas para todas las vistas creadas en los pasos anteriores en el archivo web.php que se encuentra en el directorio de rutas .
Route::get('/', function() { return view('gfg'); }); Route::get('main', function() { return view('main'); }); Route::get('article', function() { return view('article'); });
- Producción:
- Misma vista sin navegar a la otra vista.
- Si navegamos a la otra vista, la primera línea será la misma pero la segunda línea cambiará.
- Misma vista sin navegar a la otra vista.
5. View Composer: View Composer se usa cuando queremos generar una vista con otra vista cuando se realiza la llamada. Esto se puede usar como otro método para compartir datos en Laravel.
- Sintaxis:
View::composer('shared', function($view) { // });
Aquí, en lugar de compartida , podemos escribir cualquier otra vista que queramos compartir. Podemos especificar múltiples vistas en un compositor usando una array. Podemos pasar una serie de vistas.
- Sintaxis:
View::composer(['shared', 'sharedNew'], function($view) { $view->with('data', 'This is Shared Data'); });
También podemos escribir un símbolo de estrella ‘ * ‘ para tener todas las vistas pasadas en el compositor.
- Sintaxis:
View::composer(*, function($view) { $view->with('data', 'This is Shared Data'); });
- Ejemplo:
- Cree tres archivos de vista diferentes en el directorio ‘ resources/views ‘ con el nombre gfg, main y article y escriba el código a continuación para el archivo de vista respectivo.
Nota: @include es una directiva de Laravel para incluir otra vista dentro de una vista. - gfg.blade.php
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
@include('shared')
<
h3
>This is GfG View</
h3
>
</
body
>
</
html
>
- principal.blade.php
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>Main | GeeksforGeeks</
title
>
</
head
>
<
body
>
@include('shared')
<
h3
>This is the Main View</
h3
>
</
body
>
</
html
>
- artículo.blade.php
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>Article | GeeksforGeeks</
title
>
</
head
>
<
body
>
@include('shared')
<
h3
>This is the Article View</
h3
>
</
body
>
</
html
>
- Cree tres archivos de vista diferentes en el directorio ‘ resources/views ‘ con el nombre gfg, main y article y escriba el código a continuación para el archivo de vista respectivo.
- Ahora, cree otra vista con el nombre ‘ shared.blade.php ‘ y escriba el código a continuación.
<
h2
>Welcome, {{ $data }}</
h2
>
- Ahora, abra el archivo ‘ AppServiceProvider.php ‘ en el directorio ‘ app/Providers ‘. Y en la función de arranque, escriba el siguiente código.
<?php
namespace
App\Providers;
use
Illuminate\Support\ServiceProvider;
use
Illuminate\Support\Facades\View;
class
AppServiceProvider
extends
ServiceProvider
{
public
function
register()
{
}
public
function
boot()
{
View::share(
'data'
,
'This is Shared Data'
);
}
}
Aquí, hemos pasado la clave como ‘ datos ‘ con el valor ‘ Estos son datos compartidos ‘. Esto se hace porque hemos especificado la variable ‘ $data ‘ en el archivo ‘ shared.blade.php ‘. En el paso anterior. La variable ‘ $data ‘ se reemplazará con ‘ This is Shared Data ‘.
- Ahora, especifique las rutas para todas las vistas creadas en los pasos anteriores en el archivo ‘ web.php ‘ que se encuentra en el directorio ‘ routes ‘.
Route::get('/', function() { return view('gfg'); }); Route::get('main', function() { return view('main'); }); Route::get('article', function() { return view('article'); });
6. View Creator: View Creator es el mismo que View Composer que vimos anteriormente y la sintaxis también es bastante similar. La única diferencia es que no espera a que se represente la vista y se ejecuta inmediatamente después de que se encuentra la vista.
- Sintaxis:
View::creator('shared', function($view) { $view->with('data', 'This is Shared Data'); });
Referencia: https://laravel.com/docs/6.x/views
Publicación traducida automáticamente
Artículo escrito por aakashpawar1999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA