Route Group in Lumen error Call to undefined method Laravel\Lumen\Application::group()
Solution 1
Actually as @Aine said in Lumen 5.5+ you should change:
LumenPassport::routes($this->app);
to
LumenPassport::routes($this->app->router);
Application does not have group()
method anymore.
thanks
Solution 2
I just ran into the same problem, with upgrading Lumen from 5.4 to 5.5
In the docs, it states:
Updating The Routes File
After updating your bootstrap/app.php file, you should update your routes/web.php file to use the $router variable instead of the $app variable:
$router->get('/hello', function () { return 'Hello World'; });
For me, this meant lots of updating, where ever $app was used in the routing.
$app->get() => $router->get()
$app->group() => $router->group()
$app->post()/patch()/delete() => $router->post()/patch()/delete()
// Inside functions
$app->group([...], function () use ($app)
=>
$router->group([...], function () use ($router)
// And even in some other files
$app = app();
$app->get();
=>
$app = app();
$router = $app->router;
$router->get();
Hope this helps.
Solution 3
Found the solution to the problem:
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It is a breeze. Simply tell Lumen the URIs it should respond to
| and give it the Closure to call when that URI is requested.
|
*/
$router->group(['prefix' => 'api'], function () use ($router) {
$router->get('/', function () use ($router) {
return "API";
});
$router->post('/signin','UserController@signin');
$router->post('/signup','UserController@signup');
$router->group(['middleware' => 'auth'], function () use ($router) {
$router->get('/details', 'UserController@details');
});
});
In order to group routs we have to use:
$router->group(['middleware' => 'auth'], function () use ($router) {
$router->get('/details', 'UserController@details');
});
Shakti Phartiyal
Updated on June 25, 2022Comments
-
Shakti Phartiyal almost 2 years
I have declared a route group in laravel/lumen like so:
$app->group(['middleware' => 'auth'], function () use ($app) { $app->get('/details', 'UserController@details'); });
all contents of route file web.php are like so:
/* |-------------------------------------------------------------------------- | Application Routes |-------------------------------------------------------------------------- | | Here is where you can register all of the routes for an application. | It is a breeze. Simply tell Lumen the URIs it should respond to | and give it the Closure to call when that URI is requested. | */ $app = app(); $router->get('/', function () use ($router) { return $router->app->version(); }); $app->group(['middleware' => 'auth'], function () use ($app) { $app->get('/details', 'UserController@details'); });
on making a call to http://THE_URL/
I get an error
Call to undefined method Laravel\Lumen\Application::group()
How do I add route group with a middleware ?
-
Shakti Phartiyal over 6 years@MarceloRodovalho What problem are you facing ?
-
Shakti Phartiyal almost 6 yearsI was actually facing the issue on Lumen and not Laravel.
-
Aine almost 6 yearsMe too :). I just updated my answer to say Lumen instead of Laravel. Thanks.