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');
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.