Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/controller»
De WikiEducator
(Página creada con «{{TEP}} {{:Usuario:ManuelRomero/micursos/Laravel/Componentes/nav}} <br> __NOTOC__») |
|||
(4 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 3: | Línea 3: | ||
<br> | <br> | ||
__NOTOC__ | __NOTOC__ | ||
+ | ===Controlador en Laravel=== | ||
+ | *Es la manera de definir el comportamiento de la aplicacion | ||
+ | *Hasta ahora hemos usado router para decir que hacer cuando el usuario accede a una determinada URL, podemos organizarlo mejor | ||
+ | *Los controladores serán ficheros php que ubicaremos en la carpeta '''''app/http/controllers''''' | ||
+ | *Nuestros controladores extenderán de la clase base '''''BaseController''''' de laravel | ||
+ | *A continuación vamos a crear un controlador para ver su funcionamiento | ||
+ | <source lang=php> | ||
+ | <?php | ||
+ | class UsuarioControllers extends BaseController { | ||
+ | //Aquí escribiremos los métodos que queremos que implemente el controlador | ||
+ | |||
+ | } | ||
+ | ?> | ||
+ | </source> | ||
+ | *Pare ver su funcionamiento vamos a hacer un ejemplo | ||
+ | *Supongamos que qeremos hacer una aplicación que visualice todos los usuarios que tenemos en una base de datos | ||
+ | *Para hacerlo, vamos a usar el modelo vista controlador | ||
+ | *El modelo se encargará de leer de la base de datos | ||
+ | *El controlador aportará los datos para la vista | ||
+ | *LA vista los visualizará | ||
+ | *Este sencillo ejemplo muestra la forma de desarrollar código con laravel. | ||
+ | [[Archivo:ModeloVC.png]] | ||
+ | #Creamos la base de datos | ||
+ | *Para especificar la base de datos de nuestro proyecto vamos a | ||
+ | /config/database.php | ||
+ | *Ahí la configuramos | ||
+ | *Ahora en mysql, en la base de datos especificada creamos una tabla de usuarios o usamos la que ya tenemos. | ||
+ | *El modelo, será la parte encargada de acceder a la base de datos y recuperar la información | ||
+ | *El larevel para gestionar la base de datos se usa Eloquent ORM; Esta clase nos va a permitir acceder a la base de datos casi sin darnos cuenta que lo estamos haciendo, eliminandonos todo el trabajo que en realidad es siempre repetitivo de conectar e interactuar con la base de datos | ||
+ | *Vamos a ver la sencillez de su uso | ||
+ | Cremos una clase como modelo (en la carpeta correspondiente /app/models | ||
+ | <?php | ||
+ | class Usuario extends Eloquent { //Todos los modelos deben extender la clase Eloquent | ||
+ | protected $table = 'usuarios'; | ||
+ | } | ||
+ | ?> | ||
+ | Por defecto al se la clase usuarios, el ya obtiene la tabla con el mismo nombre en plurar, por lo que no haría falta ni poner la variable a utilizar | ||
+ | |||
+ | Laravel asume que todas las tablas tienen tres campos básicos ‘id’ (clave primaria), ‘created_at’, ‘updated_at’. Los últimos dos son llenados automáticamente por el framework. | ||
+ | |||
+ | ;La vista | ||
+ | *Es crear una plantilla de blade, pero ahora queremos añadir la información de los usuarios | ||
+ | *Para ello contamos que disponemos de la variable $usuario | ||
+ | <source lang=php> | ||
+ | <h3>Datos de usuarios </h3> | ||
+ | @foreach($usuarios as $usuario) | ||
+ | <li> | ||
+ | {{ $usuario->nombre.' '.$usuario->apellido }} | ||
+ | </li> | ||
+ | @endforeach | ||
+ | </source> | ||
+ | ;El controlador | ||
+ | *Ahora vamos a la parte del controlador | ||
+ | Ya hemos dicho que ha de derivar de la clase BaseController y preferiblemente ha de estar ubicado en la carpeta app/controller | ||
+ | *Ahora vamos a crear un método que obtenga la información de todos los usuarios y se los pase a la vista creada anteriormente. Añadimos un método | ||
+ | <source lang=php> | ||
+ | public function mostrarUsuarios() | ||
+ | { | ||
+ | $usuarios = Usuario::all(); | ||
+ | // Con el método all() le estamos pidiendo al modelo de Usuario | ||
+ | // que busque todos los registros contenidos en esa tabla y los devuelva en un Array | ||
+ | return View::make('usuarios.lista', array('usuarios' => $usuarios)); | ||
+ | |||
+ | // El método make de la clase View indica cual vista vamos a mostrar al usuario | ||
+ | //y también pasa como parámetro los datos que queramos pasar a la vista. | ||
+ | // En este caso le estamos pasando un array con todos los usuarios | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | *Y ahora solo nos quedaría especificar en la ruta el controlador que queremos que ejecute cuando seleccionemos esta url. | ||
+ | *En lugar de especificar clausuras o funciones anónimas, se pueden especificar controladores que además es lo que se suele hacer. | ||
+ | |||
+ | Route::get('usuarios', array('uses' => 'UsuarioControllers@mostrarUsuarios')); | ||
+ | |||
+ | *Ahora solo queda probar el ejemplo | ||
+ | |||
+ | <!--Ejemplo obtenido de http://codehero.co/laravel-4-desde-cero-estructura-del-proyecto/ --> |
Última revisión de 03:16 8 may 2015
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Controlador en Laravel
- Es la manera de definir el comportamiento de la aplicacion
- Hasta ahora hemos usado router para decir que hacer cuando el usuario accede a una determinada URL, podemos organizarlo mejor
- Los controladores serán ficheros php que ubicaremos en la carpeta app/http/controllers
- Nuestros controladores extenderán de la clase base BaseController de laravel
- A continuación vamos a crear un controlador para ver su funcionamiento
<?php class UsuarioControllers extends BaseController { //Aquí escribiremos los métodos que queremos que implemente el controlador } ?>
- Pare ver su funcionamiento vamos a hacer un ejemplo
- Supongamos que qeremos hacer una aplicación que visualice todos los usuarios que tenemos en una base de datos
- Para hacerlo, vamos a usar el modelo vista controlador
- El modelo se encargará de leer de la base de datos
- El controlador aportará los datos para la vista
- LA vista los visualizará
- Este sencillo ejemplo muestra la forma de desarrollar código con laravel.
- Creamos la base de datos
- Para especificar la base de datos de nuestro proyecto vamos a
/config/database.php
- Ahí la configuramos
- Ahora en mysql, en la base de datos especificada creamos una tabla de usuarios o usamos la que ya tenemos.
- El modelo, será la parte encargada de acceder a la base de datos y recuperar la información
- El larevel para gestionar la base de datos se usa Eloquent ORM; Esta clase nos va a permitir acceder a la base de datos casi sin darnos cuenta que lo estamos haciendo, eliminandonos todo el trabajo que en realidad es siempre repetitivo de conectar e interactuar con la base de datos
- Vamos a ver la sencillez de su uso
Cremos una clase como modelo (en la carpeta correspondiente /app/models <?php class Usuario extends Eloquent { //Todos los modelos deben extender la clase Eloquent
protected $table = 'usuarios';
} ?> Por defecto al se la clase usuarios, el ya obtiene la tabla con el mismo nombre en plurar, por lo que no haría falta ni poner la variable a utilizar
Laravel asume que todas las tablas tienen tres campos básicos ‘id’ (clave primaria), ‘created_at’, ‘updated_at’. Los últimos dos son llenados automáticamente por el framework.
- La vista
- Es crear una plantilla de blade, pero ahora queremos añadir la información de los usuarios
- Para ello contamos que disponemos de la variable $usuario
<h3>Datos de usuarios </h3> @foreach($usuarios as $usuario) <li> {{ $usuario->nombre.' '.$usuario->apellido }} </li> @endforeach
- El controlador
- Ahora vamos a la parte del controlador
Ya hemos dicho que ha de derivar de la clase BaseController y preferiblemente ha de estar ubicado en la carpeta app/controller
- Ahora vamos a crear un método que obtenga la información de todos los usuarios y se los pase a la vista creada anteriormente. Añadimos un método
public function mostrarUsuarios() { $usuarios = Usuario::all(); // Con el método all() le estamos pidiendo al modelo de Usuario // que busque todos los registros contenidos en esa tabla y los devuelva en un Array return View::make('usuarios.lista', array('usuarios' => $usuarios)); // El método make de la clase View indica cual vista vamos a mostrar al usuario //y también pasa como parámetro los datos que queramos pasar a la vista. // En este caso le estamos pasando un array con todos los usuarios }
- Y ahora solo nos quedaría especificar en la ruta el controlador que queremos que ejecute cuando seleccionemos esta url.
- En lugar de especificar clausuras o funciones anónimas, se pueden especificar controladores que además es lo que se suele hacer.
Route::get('usuarios', array('uses' => 'UsuarioControllers@mostrarUsuarios'));
- Ahora solo queda probar el ejemplo