Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/controller»
De WikiEducator
(3 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 6: | Línea 6: | ||
*Es la manera de definir el comportamiento de la aplicacion | *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 | *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/controllers''''' | + | *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 | *Nuestros controladores extenderán de la clase base '''''BaseController''''' de laravel | ||
*A continuación vamos a crear un controlador para ver su funcionamiento | *A continuación vamos a crear un controlador para ver su funcionamiento | ||
Línea 25: | Línea 25: | ||
*Este sencillo ejemplo muestra la forma de desarrollar código con laravel. | *Este sencillo ejemplo muestra la forma de desarrollar código con laravel. | ||
[[Archivo:ModeloVC.png]] | [[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