rutas route resource para metodos framework crear controladores controlador con avanzadas php laravel laravel-4

php - route - Ruta de Laravel para controlador de recursos



rutas en laravel (3)

Usando Laravel 4.2, ¿es posible asignar un nombre a una ruta de controlador de recursos? Mi ruta se define de la siguiente manera:

Route::resource(''faq'', ''ProductFaqController'');

Traté de agregar una opción de nombre a la ruta de esta manera:

Route::resource(''faq'', ''ProductFaqController'', array("as"=>"faq"));

Sin embargo, cuando toco la ruta / faq y {{ Route::currentRouteName() }} en mi vista, arroja faq.faq.index lugar de solo faq .


Cuando utiliza una ruta de controlador de recursos, genera automáticamente nombres para cada ruta individual que crea. Route::resource() es básicamente un método auxiliar que luego genera rutas individuales para usted, en lugar de que necesite definir cada ruta manualmente.

Puede ver los nombres de ruta generados escribiendo php artisan routes en Laravel 4 o php artisan route:list en Laravel 5 en su terminal / consola. También puede ver los tipos de nombres de ruta generados en la página de documentos del controlador de recursos ( Laravel 4.x | Laravel 5.x ).

Hay dos formas de modificar los nombres de ruta generados por un controlador de recursos:

  1. Proporcione un conjunto de names como parte del tercer parámetro $options array de $options , cada clave es el método del controlador de recursos (índice, tienda, edición, etc.) y el valor es el nombre que desea asignar a la ruta.

    Route::resource(''faq'', ''ProductFaqController'', [ ''names'' => [ ''index'' => ''faq'', ''store'' => ''faq.new'', // etc... ] ]);

  2. Especifique la opción as para definir un prefijo para cada nombre de ruta.

    Route::resource(''faq'', ''ProductFaqController'', [ ''as'' => ''prefix'' ]);

    Esto le proporcionará rutas como prefix.faq.index , prefix.faq.store , etc.


Para los buscadores de respuestas con Laravel 5.5+ al encontrar esta página:

Route::namespace(''Admin'')->prefix(''admin'')->name(''admin.'')->group(function () { Route::resource(''users'',''UserController''); });

Estas opciones darán como resultado lo siguiente para el Recurso :

  • namespace() establece el espacio de nombres del controlador en / Admin / UserController

  • prefix() establece la solicitud URi a / admin / usuarios

  • name() establece el acceso del nombre de la route(''admin.users.index'') a la route(''admin.users.index'')

En name() el DOT está destinado, no es un error tipográfico.

Avíseles a los demás si esto funciona en los comentarios de cualquier versión anterior a Laravel 5.5, actualizaré mi respuesta.

Actualizar:

Puedo confirmar que en Laravel 5.3 el método de name no está disponible. Aún no hay confirmación si se admite en 5.4

Taylor aceptó mi PR para documentar oficialmente esto en 5.5:

https://laravel.com/docs/5.5/routing#route-group-name-prefixes


Usando Laravel 5.5

Route :: resource (''galería'', ''GalleryController'', [''as'' => ''fotos'']);

importante tener en cuenta el " recurso "

Por ejemplo, envío algo de mi proyecto:

Route::resource(''admin/posts/tags'', ''PostTagController'', [''as'' => ''posts'']);