You are on page 1of 4

4.

3 Desarrollo de Scripts
En primer lugar es necesario crear un controlador por el tipo de patrón de programación
que el framework Laravel utiliza, Este controlador se va encargar de gestionar el uso de la
aplicación. En la sección superior (Tabla3) se enlistan clases externas creadas por los
programadores y las clases propias de Laravel, estas clases pueden ser modelos u otros
controladores.

En la tabla 3 en la primera línea se la palabra reservada namespace que hace referencia a


la ubicación física del archivo que se está leyendo. También se aprecian clases como por
ejemplo carbón que es una dependencia de Laravel que funciona para manipular más
fácilmente las fechas.

Tabla 1 Cabezara del controllador Aspirante

namespace App\Http\Controllers\Aspirante;

use App\bachilleratos_procedencia;
use App\Codigos_postale;
use App\fechas_programada;
use App\Http\Controllers\Controller;
use App\Sol_ficha_examen_aspirante;
use App\User;
use App\Paise;
use App\Estado_civil;
use App\Carrera;
use App\Municipio;

use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Beca;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Crypt;
use App\Periodo;
use \HTML2PDF;
En las consiguientes líneas del controlador se crea una clase denominada
IndexAspiranteController que por el mecanismo de herencia extiende los métodos de la
clase Controller. A grandes rasgos el controlador IndexAspiranteController cuenta con 5
metodos propios ver_datos,index,get_pdf,get_view_params,return_error,store como se
muestra en la Tabla 4,el contenido de los métodos se describirá conforme son descritos en
esta tabla.

Tabla 4 Estructura de clase

class IndexAspiranteController extends Controller{

public function ver_datos(Request $request){ }

public function index(Request $request){ }

public function store(Request $request){ }

public function get_view_params(Request $request){ }

public function return_error(Request $request){ }

En la clase antes mencionada tenemos métodos que solo son accedidos atreves de
métodos de petición del protocolo de transferencia de hipertexto (HTTP) comenzaremos
explicando los métodos de la clase que son accedidos atreves de la petición GET, en este
caso tenemos dos métodos de la clase public function ver_datos(Request $request){ } y
public function index(Request $request){ }.

En el método public function ver_datos la única operación que se realiza atreves del este
método es retornar una vista, que permite la visualización de una pantalla en el navegador
(tabla 5).El otro método de la clase public function index es más complejo y describirá poco
a poco las operaciones que se realizan dentro del método(tabla 6).
Table 5 Metodo ver_datos

public function ver_datos(Request $request)

return view('roles.aspirante.ver_datos');

El algoritmo del método index invoca al método get_view_params para obtener los datos
correspondientes que llenaran la pantalla que se mostrara, estos datos son las carreras,
estados civiles, países y las fechas, como se mencionó, estos datos son para poder llenar
los controles de las vistas.

A continuación, el método verifica que la información que el usuario ingreso sea suficiente,
de no ser así el método solicita que se agregue la información faltante.

Para poder realzar esta verificación la variable $view_params almacena la información


contenida en el método get_view_params, de tal manera que puede corroborar si hace falta
cualquiera de los siguientes datos: ficha ,carrera_uno ,carrera_dos ,dirección,bach_proced.

Posteriormente se crea la variable $view y se le asigna la vista que se va a mostrar al


usuario con los datos que se asignaron en la variable $view_params.

Para finalizar con el método se valida por cual ruta se está accediendo para generar el
archivo pdf o retornar la vista.
Table 6 index

public function index(Request $request)


{

$view_params = $this->get_view_params();

if(auth()->user()->username != '0'){
$ficha = Sol_ficha_examen_aspirante::where('num_solicitud', auth()->user()-
>username)->firstOrFail();
$view_params['ficha'] = $ficha;
$view_params['carrera_uno'] = $ficha->carrera_opcion_uno()->get()->first();
$view_params['carrera_dos'] = $ficha->carrera_opcion_dos()->get()->first();
$view_params['direccion'] = $ficha->direccion()->get()->first();
$view_params['bach_proced'] = $ficha->bachillerato_procede()->get()->first();
}

$view = view('roles.aspirante.preficha', $view_params)


->with('welcomeimg','../assets/media/institucional/welcome-img.png');

if($request->path() == 'aspirantes/ficha'){
$content = view('aspirantes.imprimir_ficha', $view_params)->render();
try {
$html2pdf = new \HTML2PDF('P', 'A4', 'es');
$nombre = "Ficha_aspirante_".$ficha['num_solicitud'];
$html2pdf->pdf->SetTitle("$nombre");
$html2pdf->WriteHTML($content);
$html2pdf->Output("$nombre.pdf");
ob_flush();
ob_end_clean();
}

catch (\HTML2PDF_exception $e) { echo $e;

exit;

return redirect('/aspirantes/');

}else {

return $view;

You might also like