php - validar - rutas con parametros laravel
¿Cómo utilizar el parámetro de ruta de solicitud en la solicitud de formulario Laravel 5? (5)
Soy nuevo en Laravel 5 y estoy tratando de usar la nueva Solicitud de formulario para validar todos los formularios en mi aplicación.
Ahora estoy atascado en un punto donde necesito ELIMINAR un recurso y creé una DeleteResourceRequest solo para usar el método authorize.
El problema es que necesito encontrar qué ID se solicita en el parámetro de ruta, pero no puedo ver cómo ingresarlo al método de autorizar.
Puedo usar la identificación en el método del controlador así:
public function destroy($id, DeletePivotRequest $request)
{
Resource::findOrFail($id);
}
¿Pero cómo hacer que esto funcione en el método de autorización de la Solicitud de formulario?
Eso es muy simple, solo usa el método route()
. Suponiendo que su parámetro de ruta se llama id
:
public function authorize(){
$id = $this->route(''id'');
}
Laravel 5.2, desde dentro de un controlador:
use Route;
...
Route::current()->getParameter(''id'');
Lo encontré útil si desea utilizar el mismo método de controlador para más de una ruta con más de un parámetro de URL, y quizás todos los parámetros no estén siempre presentes o puedan aparecer en un orden diferente ...
es decir, getParameter(''id'')
le dará la respuesta correcta, independientemente de la posición de {id}
en la URL.
Puede acceder a un valor de parámetro de ruta a través de la instancia Illuminate / Http / Request
public function destroy($id, DeletePivotRequest $request)
{
if ($request->route(''id''))
{
//
}
Resource::findOrFail($id);
}
Vine aquí en busca de una respuesta y la encontré en los comentarios, por lo que quería aclarar para otros que utilizan una ruta de recursos que intenta usar esto en una solicitud de formulario
como lo menciona lukas en su comentario: Dado un controlador de recursos Route::resource(''post'', ...)
el parámetro que puede usar se nombrará como post
Esto fue útil para mí, pero no del todo completo. Parece que el parámetro será la versión singular de la última parte del código auxiliar.
En mi caso, la ruta se definió como $router->resource(''inventory/manufacturers'', ''API/Inventory/ManufacturersController'');
Y el parámetro disponible era manufacturer
(la versión singular de la última parte del inventory/manufacturers
stub)