Laravel proporciona diferentes formas de pasar datos a una vista. Podemos pasar datos directamente desde las rutas o a través del controlador.
Estas son algunas de las formas en que podemos pasar datos a la vista:
- Usando la vista()
- Usando con()
- Usando compacto()
- Uso de la clase de controlador
1. Usando view(): podemos pasar directamente los datos en la función auxiliar ‘ view() ‘ usando el segundo parámetro en la función que toma una array como par de clave y valor.
Nota: Comente o elimine cualquier ruta anterior en el archivo ‘ web.php ‘ en el directorio ‘ routes ‘.
Ejemplo 1:
- Escriba el siguiente código en el archivo ‘ web.php ‘.
Route::get('/', function() { return view('gfg', ['articleName' => 'Article 1']); });
En view(), el primer parámetro es el nombre de la vista y el segundo parámetro es donde tenemos que especificar el par clave y valor de los datos.
- Cree y escriba el siguiente código en el archivo ‘ gfg.blade.php ‘ en el directorio ‘ resources/views ‘.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
<
h1
>My Article</
h1
>
<
h2
>{{ $articleName }}</
h2
>
</
body
>
</
html
>
Aquí hemos usado corchetes dobles ‘ {{ }} ‘ que son para escapar de los elementos HTML. En eso, hemos especificado el nombre de la clave, como una variable de PHP, que pasamos en la función auxiliar ‘ ver ‘.
Producción:
Ejemplo 2: También podemos pasar una array con múltiples valores.
- Escriba el siguiente código en el archivo ‘ web.php ‘.
Route::get('/', function() { return view('gfg', [ 'articles' => ['Article 1','Article 2','Article 3'] ]); });
En view() , el primer parámetro es el nombre de la vista y el segundo parámetro es donde hemos especificado una clave y varios valores de los datos.
También podemos almacenar los elementos de la array en una variable y luego pasarla a la función de vista. En el siguiente código, hemos almacenado todos los valores en una variable y los hemos pasado en el segundo parámetro de la función view() como un valor .
Route::get('/', function() { $articles = ['Article 1','Article 2','Article 3']; return view('gfg', ['articles' => $articles]); });
- Cree y escriba el siguiente código en el archivo ‘ gfg.blade.php ‘ en el directorio ‘ resources/views ‘.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
<
h1
>My Article</
h1
>
<
ul
>
@foreach ($articles as $article)
<
li
>{{ $article }}</
li
>
@endforeach
</
ul
>
</
body
>
</
html
>
Nota: El resultado será el mismo para ambos métodos.
Producción:
2. Usando with(): El ‘ with() ‘ es un método para pasar datos de forma individual y se usa con la función auxiliar ‘ view ‘.
Nota: Comente o elimine cualquier ruta anterior en el archivo ‘ web.php ‘ en el directorio ‘ routes ‘.
Ejemplo:
- Escriba el siguiente código en el archivo ‘ web.php ‘.
Route::get('/', function() { $articleName = ‘Article 1’; return view('gfg')->with('articleName', $articleName)-> with('articlePublished', 'On GeeksforGeeks'); });
Como puede ver en el código anterior, tenemos que especificar una flecha ‘ -> ‘ y luego usar el método ‘ with() ‘ con la función auxiliar ‘ view() ‘. Y podemos especificar uno o más ‘ with() ‘ según el requisito y el caso de uso.
- Cree y escriba el siguiente código en el archivo ‘ gfg.blade.php ‘ en el directorio ‘ resources/views ‘.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
<
h1
>My Article</
h1
>
<
p
>{{ $articleName }}</
p
>
<
p
>{{ $articlePublished }}</
p
>
</
body
>
</
html
>
Aquí hemos usado corchetes dobles ‘ {{ }} ‘ que son para escapar de los elementos HTML. En eso, hemos especificado el nombre de la clave, como una variable de PHP, que pasamos en la función de ayuda ‘ver’.
Producción:
3. Uso de compact(): ‘ compact() ‘ es una función de PHP que se puede usar para crear una array con variable y su valor. Aquí el nombre de la variable es la clave y el contenido de la variable es el valor.
Nota: Comente o elimine cualquier ruta anterior en el archivo ‘ web.php ‘ en el directorio ‘ routes ‘.
Ejemplo:
- Escriba el siguiente código en el archivo ‘ web.php ‘.
Route::get('/', function() { $articleName = ['Article 1','Article 2']; $articlePublished = 'On GeeksforGeeks'; return view('gfg', compact('articleName', 'articlePublished')); });
En view(), el primer parámetro es el nombre de la vista y el segundo es donde tenemos que especificar la función ‘ compact() ‘.
- Cree y escriba el siguiente código en el archivo ‘ gfg.blade.php ‘ en el directorio ‘ resources/views ‘.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
<
h1
>My Article</
h1
>
@foreach ($articleName as $article)
<
li
>{{ $article }}</
li
>
@endforeach
<
p
>{{ $articlePublished }}</
p
>
</
body
>
</
html
>
Aquí hemos usado corchetes dobles ‘ {{ }} ‘ que son para escapar de los elementos HTML. En eso, hemos especificado el nombre de la clave, como una variable de PHP, que pasamos en la función auxiliar ‘ ver ‘.
- Primero tenemos que crear una clase de controlador ejecutando el siguiente comando en la línea de comando.
php artisan make:controller GfGController
- Después de eso, abra el archivo ‘ GfGController.php ‘ en el directorio ‘ app/Http/Controllers ‘ y cree una función pública llamada ‘ article ‘. En esta función podemos especificar cualquiera de los métodos de transferencia de datos que vimos anteriormente.
<?php
namespace
App\Http\Controllers;
use
Illuminate\Http\Request;
class
GfGController
extends
Controller
{
public
function
article() {
return
view(
'gfg'
, [
'article'
=>
'Passing Data to View'
]);
}
}
- Ahora, escriba el siguiente código en el archivo ‘ web.php ‘.
Route::get('/', 'GfGController@article');
En esto, el primer parámetro es la ruta y el segundo es el nombre del controlador con el nombre de la función para manejar la ruta que está separada por ‘ @ ‘.
- Cree y escriba el siguiente código en el archivo ‘ gfg.blade.php ‘ en el directorio ‘ resources/views ‘.
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>GeeksforGeeks</
title
>
</
head
>
<
body
>
<
h1
>My Article</
h1
>
<
p
>{{ $article }}</
p
>
</
body
>
</
html
>
Aquí hemos usado corchetes dobles ‘ {{ }} ‘ que son para escapar de los elementos HTML. En eso, hemos especificado el nombre de la clave, como una variable de PHP, que pasamos en la función auxiliar ‘ ver ‘.
- Producción:
4. Usar la clase de controlador: pasar datos usando la clase de controlador es fácil y es la forma correcta.
Nota: Comente o elimine cualquier ruta anterior en el archivo ‘ web.php ‘ en el directorio ‘ routes ‘.
Ejemplo:
Publicación traducida automáticamente
Artículo escrito por aakashpawar1999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA