Joseph Joseph - 2 years ago 105
PHP Question

Using Route Prefixes in Lumen

From the Lumen 5.2 docs:

The prefix group attribute may be used to prefix each route in the
group with a given URI. For example, you may want to prefix all route
URIs within the group with admin:

$app->group(['prefix' => 'admin'], function () use ($app) {
$app->get('users', function () {
// Matches The "/admin/users" URL

My code:

$app->group(['prefix' => 'v1'], function () use ($app) {
$app->get('lessons', function () {
['as' => 'lessons.index', 'uses' => 'LessonsController@index'];

This returns a 200 but it is clearly not calling the
method on the

I have also tried this:

$app->group(['prefix' => 'v1'], function () use ($app) {
$app->get('lessons', ['as' => 'lessons.index', 'uses' => 'LessonsController@index']);

Results in
ReflectionException in Container.php line 738: Class LessonsController does not exist

Answer Source

I am currently using prefixes like this:

$app->group(['namespace' => "App\Http\Controllers", 'prefix' => 'v1'], function($app){
    $app->get('/lessons', 'LessonsController@index');   

Which works fine in my version of Lumen. You would access the url /v1/lessons and it is handled by the index() method inside the LessonsController

Note: It would appear that the Lumen documentation misses out that in order to do this you require the 'namespace' => "App\Http\Controllers" key value pair in order for this to work.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download