RUTAS

Iniciamos instalando laravel y creando un poryecto con los siguientes comandos:

composer global require laravel/installer

 

laravel new blog

Laravel define una clase RouteServiceProvider, y la sitúa en routes. Se encargan de manejar el flujo de solicitudes y respuestas, desde y hacia el cliente .

RUTAS

php artisan route:list


Rutas registradas

Route::get(‘url’, function()

{return ‘Cadena’ });


Devuelve una cadena

Route::get(‘/usuario/{id}’, function($id){

return “usuario: {$id}” });


Parámetros 

Rute::get(‘saludo/{name}/{nickname?}’, function ($name, $nickname=null)){}


Parámetros opcionales

Route::get(‘/’,funciton(){return view(‘welcome’);});


Devuelve una vista desde una función.

Route::get(‘curso/create’,

[CursoControlador::class, ‘create’])


Método que administran rutas.

Route::view('/','doc.inicio');


Devuelve una vista.

 

 app/Http/routes.php


 Las peticiones realizadas por el navegador son en lo general get, post, put, delete, patch de HTTP hacia una URL concreta.El enrutamiento define un mapa entre los métodos HTTP y los URI en un lado, y las acciones en el otro. Las rutas se escriben normalmente en el archivo app/Http/routes.php . El Framework nos brinda distintos tipos de routes para atender cada una de las solicitudes HTTP que recibe nuestra aplicación. Solo basta con utilizar la clase Routes con el método que corresponda al verbo HTTP.
 
El primero es la URL que se llamará desde el navegador y el segundo es una función anónima que devuelve lo que queremos mostrar.
 

php artisan route:list

 

En la linea de comandos podemos ver todas las rutas que nuestro proyecto tiene registradas:php artisan route:list.Este comando nos va a mostrar en la consola un resultado similar a esto:


Aqui podemos ver el nombre de nuestras rutas, de que tipo son, si es que reciben parametros y como se llaman, esta información es muy util para poder asociar los métodos del controlador con las rutas y también como es que las vamos a usar en el navegador.

 

 


 

===================================

Route::get('/esta-es-la-url', function () {


return 'Hola mundo';


});

===================================

Route::get('/listado-de-publicaciones/{categoria}', 'PostController@index'); =================================== class PostController extends Controller { public funtion index($categoria) { (...) } }

===================================




                    Rutas con parámetros


También con el sistema de rutas de Laravel puedes crear rutas más complejas que necesiten de parámetros dinámicos. Se pueden definir de la siguiente forma:

=====================================

Route::get('/usuarios/detalles/{id}', function ($id) {


return "Detalles del usuario: {$id}";


});


====================================

Route::get('posts/{post_id}/comments/{comment_id}',

             function ($postId, $commentId) {          return "Este el comentario {$commentId} del post {$postId}"; });

======================================


En este caso Laravel se encarga de capturar el segmento de la ruta que es dinámico (lo identifica porque está encerrado entre llaves). Por tanto, en la URL pasamos la identificación del parámetro encerrado entre llaves y en la función anónima lo pasamos como argumento para que pueda ser accedido y usado dentro de dicha función.


Rutas con parámetros opcionales    


Cuando el uso de un parámetro no es obligatorio, podemos usar el carácter ? después del nombre del parámetro para indicar que es opcional. Sin embargo, debe añadirse un valor por defecto al parámetro cuando lo colocamos en la función, por ejemplo:



Route::get('saludo/{name}/{nickname?}', function ($name, $nickname = null) {

if ($nickname) {

return "Bienvenido {$name}, tu apodo es {$nickname}";

} else {

return "Bienvenido {$name}, no tienes apodo";

}

});


Cómo invocar una vista


Route::get('/', function () {

return view('welcome');

});


VISTAS


Las vistas no es más que lo que tú ves cuando entras a una web. En Laravel las vistas se encuentran en resources/views. Para ver un ejemplo de como funcionan, en el código de ejemplo de las rutas se puede ver claramente como funciona.


Cuando entra en la raíz muestra la vista welcome que se encuentra en resources/views. Si abres el archivo verás que hay partes que tiene una sintaxi diferente que no es ni PHP ni HTML, esas partes de código es Blade, que es el motor de plantillas de Laravel, que nos facilita mucho el trabajo. Más adelante profundizaremos en Blade y explicaremos esa sintaxis.


En el siguiente código realizamos la invocación a una vista. Debes apreciar la función view() dentro del closure, a la que enviamos el nombre de la vista a mostrar.


Route::get('algo', function () { return view('algo'); });


Como has podido ver, view() es una función global, un helper global en Laravel, que se encarga de cargar una vista y devolver la salida producida por ella.


NAMESPACE


Si no definimos el namespace App\Http\Controller Laravel no sabrá encontrar este archivo y su método index.


Puede definir una ruta a esta acción del controlador así:

use App\Http\Controllers\UserController;


Route::get('user/{id}', [UserController::class, 'show']);

Ahora, cuando una solicitud coincide con el URI de ruta especificado, se ejecutará el método show en la clase UserController. Los parámetros de ruta también se pasarán al método.
 
 
 

Le pasamos a la ruta un identificador que tendrá un valor por defecto y esa ruta tendrá un nombre

//dentro de la misma vista, asignamos valor por defecto
Route::get('/show/{id?}',function($id="122"){

    return $id;
    
    })->name('show');
 
 Restricciones con Expresiones Regulares

Route::get('user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');   //nomes poden passar lletres miníscules o Majúscules como mínim una volta 

Route::get('user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');   //com a mínim, a soles podem passar com a mínim un nombre.

Route::get('user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);   //le pasamos un array en caso de más de un elemento.
 
 uta en función del ROLE

// en el navegador puedes poner /admin/modificar-usuario  o  /admin/insertar-usuario
Route::group(['prefix'=>'admin'],function(){ 
    
    Route::get('modificar-usuario',function(){

    return "modifica usuario";

    });


    Route::get('insertar-usuario',function(){

    return "insertar usuario";

    });

});
 
 


Ruta que nos lleva directamente a una vista e incluso pasarle un argumento.

Route::view('/welcome', 'welcome'); //en el caso que sólo queramos enviar a una vista sin pasar por el controlador Route::view('/welcome', 'welcome', ['name' => 'Taylor']);
 
 Especificamos que podemos usar GET y POST para una ruta
//verbos HTTP múltiples
Route::match(['get', 'post'], '/', function () {
    //
});

//verbos HTTP cualquiera
Route::any('/', function () {
    //
});

Creamos un controlador vacio, App->http->Controller->

php artisan make:controller MoviesController --plain

//en route
Route::get('/ejemplo', 'PeliculasController@index');

//en controlador
public function index(){

echo "hola Julio";

}
 

Comentarios

Entradas populares de este blog

reloj obs---datetime.lua

10 videojuegos gratis para aprender JavaScript en línea

Filtrando por fecha