web-dev-qa-db-ja.com

ルーメンエラーのルートグループ未定義のメソッドLaravel \ Lumen \ Application :: group()の呼び出し

私は次のようにlaravel/Lumenでルートグループを宣言しました:

_$app->group(['middleware' => 'auth'], function () use ($app) {
    $app->get('/details', 'UserController@details');
});
_

ルートファイルweb.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.
|
*/

$app = app();

$router->get('/', function () use ($router) {
    return $router->app->version();
});


$app->group(['middleware' => 'auth'], function () use ($app) {
    $app->get('/details', 'UserController@details');
});
_

http:// THE_URL / への呼び出しについて

エラーが発生しますCall to undefined method Laravel\Lumen\Application::group()

ERROR

ミドルウェアでルートグループを追加するにはどうすればよいですか?

5

実際、@ AineがLumen5.5 +で言ったように、変更する必要があります。

LumenPassport::routes($this->app);

LumenPassport::routes($this->app->router);

アプリケーションにはもうgroup()メソッドがありません。

ありがとう

5
zedomel

Lumenを5.4から5.5にアップグレードすると、同じ問題が発生しました。

docs には、次のように記載されています。

ルートファイルの更新

Bootstrap/app.phpファイルを更新した後、routes /web.phpファイルを更新して$ app変数の代わりに$ router変数を使用する必要があります。

$ router-> get( '/ hello'、function(){return'Hello World ';});

私にとって、これはルーティングで$ appが使用された場合は常に、多くの更新を意味しました。

$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();

お役に立てれば。

3
Aine

問題の解決策を見つけました:

<?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');
    });
});

ルートをグループ化するには、次のものを使用する必要があります。

$router->group(['middleware' => 'auth'], function () use ($router) {
        $router->get('/details', 'UserController@details');
});
1