dingo/api

Child/Inner route not inheriting parent middlware(s)

オープン

#1,752 opened on 2020/09/30

 (1 件のコメント) (0 件のリアクション) (0 人の担当者)PHP (1,269 件のフォーク)batch import
help wantedlumen

Repository metrics

Stars
 (9,351 個のスター)
PR merge metrics
 (30d に merged PR はありません)

説明

Q A
Bug? yes
New Feature? no
Framework Lumen
Framework version 7.0
Package version 3.0.0
PHP version 7.2

Actual Behaviour

Dingo child/inner route middleware not "inherit" parent's middleware.

Expected Behaviour

The child routes should append middlware define from the parent as its own middlware.

Steps to Reproduce

use Dingo\Api\Routing\Router;

$api->group([
    'prefix' => 'foo',
    'middleware' => ['auth:api'],
], function (Router $api) {

    $api->get('/test', [
        'uses' => 'ExampleController@test'
    ]);

    $api->get('/bar', [
        'uses' => 'ExampleController@bar',
        'middleware' => ['employee'],
    ]);

    $api->get('/biz', [
        'uses' => 'ExampleController@biz',
        'middleware' => ['employer'],
    ]);

  ]);

/test has auth:api middlware foo/bar has employee middlware but it should auth:api and employee foo/biz has employee middlware but it should auth:api and employer

Possible Solutions

Currently what i'm doing is write the full middlware on every child 'middleware' => ['auth:api','employer'], or moving it outside the group.

コントリビューターガイド