informatica:programacion:php:frameworks:laravel:uso_de_vistas
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:php:frameworks:laravel:uso_de_vistas [2025/02/12 15:44] – [Usando vistas en los controladores] tempwin | informatica:programacion:php:frameworks:laravel:uso_de_vistas [2025/03/03 14:24] (actual) – [Crear plantillas para las vistas] tempwin | ||
|---|---|---|---|
| Línea 100: | Línea 100: | ||
| public function show($post) { | public function show($post) { | ||
| - | | + | // Para pasarle variables a un vista, la añadimos a un array |
| + | // como segundo argumento del " | ||
| + | | ||
| + | ' | ||
| + | ]); | ||
| } | } | ||
| } | } | ||
| Línea 119: | Línea 123: | ||
| </ | </ | ||
| - | ===== Enviando y mostrando información en vistas ===== | + | Para pasarle argumentos a una vista desde un controlador, también podemos usar la función |
| - | + | ||
| - | Sabemos cómo crear una vista, | + | |
| - | + | ||
| - | Partimos de un método de nuestro | + | |
| <code php> | <code php> | ||
| - | | + | // ... código |
| - | public function show($product) | + | public function show($post) { |
| - | | + | return view("posts.show", compact(' |
| - | $product = Product:: | + | |
| - | | + | |
| - | return view("products.show" | + | |
| - | + | ||
| - | } | + | |
| </ | </ | ||
| - | Para enviar información a la vista usamos | + | La función |
| <code php> | <code php> | ||
| - | // code | + | [' |
| - | public function show($product) | + | |
| - | { | + | |
| - | $product = Product:: | + | |
| - | + | ||
| - | return view(" | + | |
| - | " | + | |
| - | | + | |
| - | + | ||
| - | } | + | |
| </ | </ | ||
| - | |||
| - | A la vista estaremos enviando la variable '' | ||
| - | |||
| - | Si vamos a la vista ('' | ||
| - | |||
| - | <code html5> | ||
| - | < | ||
| - | <html lang=" | ||
| - | < | ||
| - | <meta charset=" | ||
| - | < | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | < | ||
| - | <p>{{ $product-> | ||
| - | <p>{{ $product-> | ||
| - | <p>{{ $product-> | ||
| - | <p>{{ $product-> | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Usando [[https:// | ||
| ===== Blade: motor de plantillas ===== | ===== Blade: motor de plantillas ===== | ||
| - | [[https:// | + | [[https:// |
| ==== Variables ==== | ==== Variables ==== | ||
| Línea 279: | Línea 241: | ||
| </ | </ | ||
| + | ==== Componentes ==== | ||
| + | |||
| + | Cuando queramos definir código que se repite en varios puntos de nuestro proyecto, Blade nos permite la creación de componentes. | ||
| + | |||
| + | Para organizarlo, | ||
| + | |||
| + | <code html> | ||
| + | <div class=" | ||
| + | <span class=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | A partir de este momento, cada vez que queramos llamar a ese componente, utilizaríamos la etiqueta ''< | ||
| + | |||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <meta charset=" | ||
| + | <script src=" | ||
| + | </ | ||
| + | < | ||
| + | <!-- Breathing in, I calm body and mind. Breathing out, I smile. - Thich Nhat Hanh --> | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Para tener un contenido variable en un componente, tenemos que crear una variable en el lugar que va a cambiar: | ||
| + | |||
| + | <code html> | ||
| + | <div class=" | ||
| + | <span class=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Y le pasaríamos el contenido en la etiqueta de la vista donde la usamos: | ||
| + | |||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <meta charset=" | ||
| + | <script src=" | ||
| + | </ | ||
| + | < | ||
| + | <!-- Breathing in, I calm body and mind. Breathing out, I smile. - Thich Nhat Hanh --> | ||
| + | < | ||
| + | < | ||
| + | Contenido de la alerta | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Cuando queremos usar más de una variable, tenemos que utilizar la etiqueta ''< | ||
| + | |||
| + | <code html> | ||
| + | <div class=" | ||
| + | <span class=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Y en la vista: | ||
| + | |||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <meta charset=" | ||
| + | <script src=" | ||
| + | </ | ||
| + | < | ||
| + | <!-- Breathing in, I calm body and mind. Breathing out, I smile. - Thich Nhat Hanh --> | ||
| + | < | ||
| + | < | ||
| + | <x-slot name=" | ||
| + | Título de la alerta | ||
| + | </ | ||
| + | Contenido de la alerta | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | También podríamos añadir atributos: | ||
| + | |||
| + | <code html> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <meta charset=" | ||
| + | <script src=" | ||
| + | </ | ||
| + | < | ||
| + | <!-- Breathing in, I calm body and mind. Breathing out, I smile. - Thich Nhat Hanh --> | ||
| + | < | ||
| + | <x-alert type=" | ||
| + | <x-slot name=" | ||
| + | Título de la alerta | ||
| + | </ | ||
| + | Contenido de la alerta | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | En el componente ('' | ||
| + | |||
| + | <code html> | ||
| + | @props ([' | ||
| + | |||
| + | @php | ||
| + | switch ($type) { | ||
| + | case ' | ||
| + | $class = " | ||
| + | break; | ||
| + | case ' | ||
| + | $class = " | ||
| + | break; | ||
| + | case ' | ||
| + | $class = " | ||
| + | break; | ||
| + | case ' | ||
| + | $class = " | ||
| + | break; | ||
| + | case ' | ||
| + | $class = " | ||
| + | break; | ||
| + | default: | ||
| + | break; | ||
| + | } | ||
| + | @endphp | ||
| + | <div class=" | ||
| + | <span class=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Componentes de clase ==== | ||
| + | |||
| + | Con los componentes de clase podremos separar la lógica de la vista. En el apartado anterior, en '' | ||
| + | |||
| + | < | ||
| + | php artisan make: | ||
| + | </ | ||
| + | |||
| + | Se creará '' | ||
| + | |||
| + | Ahora moveremos la lógica de '' | ||
| + | |||
| + | <code php> | ||
| + | |||
| + | </ | ||
| + | |||
| + | Y en la vista ('' | ||
| + | |||
| + | <code php> | ||
| + | <div {{ $attributes-> | ||
| + | <span class=" | ||
| + | </ | ||
| + | |||
| + | En la vista '' | ||
| + | |||
| + | <code php> | ||
| + | // ... | ||
| + | < | ||
| + | <x-slot name=" | ||
| + | Título de la alerta | ||
| + | </ | ||
| + | | ||
| + | Contenido de la alerta | ||
| + | </ | ||
| + | </ | ||
| ===== Crear plantillas para las vistas ===== | ===== Crear plantillas para las vistas ===== | ||
| Para cuando tengamos componentes que se repitan. | Para cuando tengamos componentes que se repitan. | ||
| - | Creamos, por ejemplo, '' | + | <WRAP center round info 60%> |
| + | Parece ser que lo habitual no es hacer esto para la creación de plantillas sino usar componentes. | ||
| + | </ | ||
| + | |||
| + | Creamos, por ejemplo, '' | ||
| <code html5> | <code html5> | ||
| Línea 371: | Línea 519: | ||
| </ | </ | ||
| </ | </ | ||
| + | ===== Enviando y mostrando información en vistas ===== | ||
| + | |||
| + | Sabemos cómo crear una vista, cómo mostrar información en esa vista, pero ahora queremos añadir en la vista información que recuperamos de la base de datos a través de un controlador. | ||
| + | |||
| + | Partimos de un método de nuestro '' | ||
| + | |||
| + | <code php> | ||
| + | // code | ||
| + | public function show($product) | ||
| + | { | ||
| + | $product = Product:: | ||
| + | | ||
| + | return view(" | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Para enviar información a la vista usamos '' | ||
| + | |||
| + | <code php> | ||
| + | // code | ||
| + | public function show($product) | ||
| + | { | ||
| + | $product = Product:: | ||
| + | | ||
| + | return view(" | ||
| + | " | ||
| + | ]); | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | A la vista estaremos enviando la variable '' | ||
| + | |||
| + | Si vamos a la vista ('' | ||
| + | |||
| + | <code html5> | ||
| + | < | ||
| + | <html lang=" | ||
| + | < | ||
| + | <meta charset=" | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | < | ||
| + | <p>{{ $product-> | ||
| + | <p>{{ $product-> | ||
| + | <p>{{ $product-> | ||
| + | <p>{{ $product-> | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Usando [[https:// | ||
| + | |||
| + | |||
informatica/programacion/php/frameworks/laravel/uso_de_vistas.1739371451.txt.gz · Última modificación: por tempwin
