dingo/api

Child/Inner route not inheriting parent middlware(s)

開放

#1,752 建立於 2020年9月30日

 (1 則留言) (0 個反應) (0 位負責人)PHP (1,269 個分叉)batch import
help wantedlumen

倉庫指標

星標
 (9,351 顆星)
PR 合併指標
 (30 天內沒有已合併 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.

貢獻者指南