Assume the following routes in a Laravel 5.5 API:
// custom routes for THIS user (the user making the request)
Route::get('/user', 'UserController@show');
Route::get('/user/edit', 'UserController@edit');
// register CRUDdy resource routes for users
Route::resource('users', 'UserController');
Let's use edit
as the example:
public function edit(User $user)
{
...
}
As you can see, the edit route contains a type-hinted $user
parameter. This works just fine for the users/13/edit
route, as expected. However, I'd to configure the route /user/edit
to pass along the $request->user()
user object to the function. I don't want to check for the user object in the actual edit
method as that could interfere with other validation (for instance, I don't want to default to the current user if someone passes a non-existent user ID, I want to return an error in that case).
In short: how can I register a route to first create a parameter, then pass it to the given controller method? My first thought was to use a closure:
Route::get('/user/edit', function(Request $request){
$user = $request->user();
});
But once inside the closure, I'm not certain how to then carry the request forward to the appropriate controller method.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire