Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2015, 15:40
Avatar de GendeDios
GendeDios
 
Fecha de Ingreso: mayo-2007
Ubicación: Paraiso de America
Mensajes: 135
Antigüedad: 17 años
Puntos: 10
Pregunta Patron de repositorios + Laravel

Hola.

Necesito la ayuda de ustedes.
Debo hacer una aplicación en Laravel usando el patrón de repositorios, soy nuevo en Laravel, tengo claro los conceptos de rutas, controladores, modelos y vistas.

Pero ahora me solicitan aplicar el repository pattern en esta aplicación y la información que he encontrado hasta ahora no es nada intuitiva.

Les agradezco si pueden ustedes ayudarme.

Tengo el siguiente caso:

Archivo routes.php:

Código PHP:

Route
::get('edit-user',function()
{
    return 
View::make('editUser');
});
Route::post('edit-submit','userProfile@editUser');
Route::get('profile','userProfile@profile'); 
Archivo editUser.blade.php en el directorio views:

Código PHP:

<form action="edit-submit"  method="post">
            
User name: <br>
            <
input name="username" type="text" value="{{Auth::User()->username}}"

 <
input class="btn btn-block btn-default" value="Aceptar" type="submit">                   
</
form

Archivo userProfile.php en el directorio controllers:

Código PHP:

class userProfile extends BaseController {

    public function 
__construct()
    {
        
$this->beforeFilter('auth');  //bloqueo de acceso
    
}
 
    public function 
profile()
    {
        return 
View::make('profile');
    }

    public function 
editUser()
    {   
        
$id Auth::id();
        
$user User::find($id);
        
$user->username Input::get('username');
        
        
$user->save();
    }


Lo que hace la aplicación:

Por url accedo a la ruta: edit-user, esta me llama la vista editUser.blade.php la cual me muestra el username del usuario autenticado en una caja de texto, en tal caja puedo editar este username, cuando le doy clic al boton submit de este formulario me lleva a la ruta: editSubmit la cual me ejecuta la función editUser del controlador userProfile, aquí esta función toma el nuevo username digitado en el formulario y lo guarda en la base de datos.

Lo que debo hacer:

Debo colocar el mayor código posible del controlador userProfile.php en un archivo llamado userProfileRepository.php en el directorio repositories con la clase userProfileRepository.

Mi pregunta es:

Si la función editUser() del controlador la pongo en un repositorio, cómo accedo a esta función? Cuál es la forma correcta para hacer uso de ese repositorio desde las rutas o desde cualquier otro controlador o repositorio.

Yo sigo atento aquí a su ayuda.

Muchas gracias.