Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(Framework)
4
Empezando Laravel
¿Qué es Composer?
• Es un manejador de dependencias, no un gestor de
paquetes.
• Composer es capaz de instalar las librerías que
requiere tu proyecto con las versiones que necesiten.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController; //Referencia al controlador
use App\Http\Controllers\CursoController;
Route::get('/', HomeController::class);
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController; //Realizamos una referencia al controlador
use App\Http\Controllers\CursoController;
Route::get('/', HomeController::class);
//Grupo de Rutas Vamos analizar estas 3 rutas. Hemos tenido que especificar 3 veces cada una de
las rutas que va ha utilizar el controlador llamado CursoController, pero se
Route::controller(CursoController::class)->group(function(){ diferencia a cada una de estas rutas es que será administrado por el método
Route::get('cursos', 'index'); index, create, show.
Route::get('cursos/create','create');
En vez de definir que en cada una de las rutas que vamos hacer uso de
Route::get('cursos/{curso}','show'); CursoController, vamos a crear un grupo de rutas, y definir todas las rutas que
incluyamos dentro de este grupo van hacer uso del controlador CursoController
});
Recordando lo que hemos estudiado hasta ahora..
Vamos ha trabajar con nuestro controlador primero
(HomeController) para que nos retorne una vista Home.Controller.php
Cada vez que el usuario hace una petición por la url
<?php
lo que hace es devolver una cadena de texto namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
Web.php //Agregaremos un método llamado Invoke
public function __invoke(){
<?php /* return view('welcome');*/
return “Bienvenido a la pagina principal”;
use Illuminate\Support\Facades\Route; }
use App\Http\Controllers\HomeController; //Referencia al }
controlador
use App\Http\Controllers\CursoController;
<?php
CursoController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
Route::get('/', HomeController::class);
class CursoController extends Controller
{
Route::get('cursos', [CursoController::class, 'index’]);
// va ha administrar 3 rutas distintas
//para administrar esta ruta, hemos definido que se encargara
public function index(){
será el método index
return "Hola Bienvenidos a la Pagina Principal";
Route::get('cursos/create', [CursoController::class,
// es decir que este mensaje se esta agregando en el controlador
'create’]); //para administrar esta ruta, hemos definido que con su respectivo método (index)
se encargara será el método create }
Route::get('cursos/{curso}', [CursoController::class, public function create(){
'show’]); //para administrar esta ruta, hemos definido que se return "En esta pagina creamos nuevos cursos";
encargara será el método show }
public function show($curso){
//Esto es una estructura de ruta mucho mas limpia return "Bienvenidos al Curso de $curso";
}
}
Ahora vamos a trabajar con las vistas en Laravel..
Vistas (View)
<!DOCTYPE html>
<html lang="en"> Home.php
<head>
<meta charset="UTF-8">
Resources <meta http-equiv="X-UA-Compatible" content="IE=edge">
Views <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
Home.php Vamos a crear un archivo llamado <!--favicon-->
Home.php dentro de vista (Views)
<!--estilos-->
</head>
<body>
<!--header-->
Creamos una carpeta llamada ”Cursos” y agregamos 3
archivos dentro de esa carpeta <!--nav-->
<?php
Home.Controller.php
namespace App\Http\Controllers;
CursoController.php
<?php
use Illuminate\Http\Request;
namespace App\Http\Controllers;
class HomeController extends Controller
use Illuminate\Http\Request;
{
class CursoController extends Controller
//Agregaremos un método llamado Invoke
{
public function __invoke(){
// va ha administrar 3 rutas distintas
return view('home');
public function index(){
}
return “";
}
// es decir que este mensaje se esta agregando en el controlador
con su respectivo método (index)
}
public function create(){
return "";
}
public function show($curso){
return "";
}
} Pasamos el contenido del mensaje de cada unos
de los métodos en las vistas
<!DOCTYPE html>
index.php
<!DOCTYPE html> show.php
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial- <meta name="viewport" content="width=device-width, initial-
scale=1.0"> scale=1.0">
<title>Document</title> <title>Document</title>
</head> </head>
<body> <body>
<h1> Bienvenidos a la Pagina Principal del CURSO LARAVEL </h1> <h1> Bienvenidos al Curso de $curso <?php echo $curso;?></h1>
</body> </body>
</html> </html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
create.php <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>En esta pagina creamos nuevos cursos</h1>
</body>
</html>
CursoController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class CursoController extends Controller
{
public function index(){
return view('cursos.index');
}
public function create(){ Voy ha solicitar que me devuelva las respectivas vista del archivo
return view('cursos.create'); index, create, show
}
public function show($curso){
return view('cursos.show',['curso'=>$curso]);
}
}
Vamos a crear una nueva carpeta dentro de view, llamado layouts, y
dentro de la carpeta vamos a crear un archivo llamado
plantilla.blade.php
home.blade.php
Establecemos una plantilla para todas
<!DOCTYPE html>
<html lang="en">
las vistas @extends('layouts.plantilla')
<head>
@section('title', 'home')
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> @section('content')
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@yield(‘title’)</title> <h1>Bienvenido a la pagina Principal<h1>
<!--favicon-->
<!--estilos--> @endsection( )
</head>
<body> Establecemos en las vistas la siguiente línea de
<!--header--> código y lo dejamos así como visualizamos
<!--nav--> Nota: Cambiamos el nombre del archivo home por
Index.blade.php home.blade.php
@yield(‘content’) @section('title', 'Cursos')
<!--footer--> <h1>Bienvenido a la pagina Principal de cursos</h1> También vamos a cambiar el nombre de los archivos
<!--script--> create.blade.php index por index.blade.php
</body> @section('title', ‘Cursos create’)
</html> <h1>En esta pagina podemos crear cursos</h1> Create por create.blade.php
show.blade.php show.blade.php
@section('title', 'Curso' . $curso)
<h1>Bienvenido al curso {{$curso}} </h1>
Motor de plantilla Blade
¿Qué es Blade?
• Blade es el sistema de plantillas de Laravel, el cual nos
permite generar HTML dinámico con una sintaxis mucho
más limpia que si usáramos PHP plano.
config
database.php
github.com/coders-free