Два промежуточных программного обеспечения только для одной функции в Laravel - PullRequest
0 голосов
/ 31 августа 2018

Я могу использовать только одно промежуточное ПО одновременно внутри конструктора. Я хочу использовать условие if else внутри конструктора или два промежуточных ПО.

Я могу использовать только одно промежуточное ПО внутри конструктора, и если условие не работает, также

Я хочу, чтобы только одна функция работала или использовалась в соответствии с промежуточным программным обеспечением. У меня есть две отдельные таблицы для аутентификации

    Following middleware pointing to diffrent table

       $this->middleware('auth:admin') - admins 
        $this->middleware('auth')- user

Пример:

Если еще

class HRJob extends Controller
   {   
       public function __construct()
       {
          if(Auth::guard('admin'))
         {
          $this->middleware('auth:admin');
         }
       else
       {
       $this->middleware('auth');
        }
    }
      public function userdetails()
      {
     dd(Auth::user());
      }
    }

Два промежуточных ПО

class HRJob extends Controller
 {  
   public function __construct()
       {
     $this->middleware('auth:admin');
     $this->middleware('auth');
     }

  public function userdetails()
     {
     dd(Auth::user());
      }
 }

1 Ответ

0 голосов
/ 02 сентября 2018

Вы можете попробовать вот так в контроллере

class UserController extends Controller
{
    /**
     * Instantiate a new UserController instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');

        $this->middleware('log', ['only' => [
            'fooAction',
            'barAction',
        ]]);

        $this->middleware('subscribed', ['except' => [
            'fooAction',
            'barAction',
        ]]);
    }
}

Также вы можете использовать группы Middleware

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
    ],

    'api' => [
        'throttle:60,1',
        'auth:api',
    ],
];

Подробнее: https://laravel.com/docs/master/middleware

...