Rutas: Cambiar espacio de nombres en Laravel 8

rutas

Cambiar el espacio de nombres de enrutamiento en Laravel 8 como Laravel 7

Hola a todos, ahora que se ha lanzado Laravel 8, como sabemos, hay algunos cambios, uno de los cuales es escribir rutas, porque en Laravel 8 actualmente el espacio de nombres predeterminado es nulo, por lo que ya no podemos usar cadenas para escribir rutas, cosa que esto podría hacer que algunas personas no estén familiarizadas con la escritura de rutas con Laravel 8 .


Entonces, en esta ocasión, cambiaremos la escritura de la ruta para que sea como Laravel 7 o inferior. En primer lugar, crearemos un nuevo proyecto -y asegúrese de que su instalador de laravel esté en la versión 4 porque Laravel 8 ahora está usando la versión 4 del instalador-. Puede ejecutar el siguiente comando para actualizar el instalador:

composer global update laravel/installer

Si el comando anterior falla, puede forzar directamente la descarga con el comando:

composer global require "laravel/installer:^4.0"

Entonces podemos crear el proyecto con el comando:

laravel new laravel_8

Después de eso, haremos el proceso de descarga de Laravel, y lo nuevo es que nos recibe con la escritura de Laravel como se muestra a continuación:

rutas

Espere a que se complete el proceso de instalación, aparecerá así:

rutas

Luego lo abrimos en nuestro editor de texto, usaré el código vs y escribirá este comando en la terminal:

cd laravel_8
code .

Y primero creamos un controlador con el nombre HomeController, ejecutamos el comando:

php artisan make:controller HomeController

Luego abrimos el controlador que creamos anteriormente y agregamos una función de índice que devuelve una cadena:

public function index(){
   return 'Hello Home';
}

Luego llamaremos a esta función en la ruta, ahora abrimos route/web.php y escribimos:

Route::get('/home', 'HomeController@index');

Y abrimos nuestro proyecto en el navegador con el siguiente comando en la terminal:

php artisan serve

Luego aparecerá una pantalla como la siguiente:

rutas

La pantalla inicial que cambió en laravel 8, ahora iremos a la url: http://127.0.0.1:8000/home, aparecerá un error:

rutas

Esto sucede porque la escritura de la ruta en laravel 8 es diferente a la versión anterior, ahora abrimos route/web.php nuevamente y cambiamos la sintaxis a:

use App\Http\Controllers\HomeController;Route::get('/home', [HomeController::class, 'index']);

Luego volvemos al navegador y actualizamos, luego la pantalla será así:

rutas

El cambio de escritura de la ruta se debe a que el espacio de nombres en la ruta predeterminada es nulo. Ahora, no queremos escribir la ruta más reciente, porque no es buena, ¿cómo la cambiamos? Podemos abrir Providers/RouteServiceProvider y luego cambiarla.

protected $namespace = null;

Se convierte en:

protected $namespace = 'App\Http\Controllers';

Mientras que…

Route::middleware('web')
                  ->group(base_path('routes/web.php'));Route::prefix('api')
              ->middleware('api')
              ->group(base_path('routes/api.php'));

Se convierte en:

Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));Route::prefix('api')
                ->middleware('api')
                ->namespace($this->namespace)
                ->group(base_path('routes/api.php'));

Y cambiamos la escritura en la ruta:

Route::get('/home', 'HomeController@index');

Luego en el navegador los resultados serán los mismos.

rutas


Tal vez eso sea todo…

¡Gracias! 🙂

Recent Post