0

laravel を使い始めたばかりで、バニラphpを移行して使用する際に大きな問題が発生しました。

私はmiddleware

<?php

namespace App\Http\Middleware;

use Closure;
use Session;

class QwickAuthCheck
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ($request->session()->has('qwick')) {
            //
            return redirect('home');
        }

        return $next($request);
    }
}

セッションが設定されているかどうかを確認しています。 home私が持っているルートですroutes.php

Route::get('/', 'WebController@home')->name('home');

kernel.phpこのように登録します。

protected $routeMiddleware = [
    ........
    ........
    'qwickAuth' => \App\Http\Middleware\QwickAuthCheck::class,
];

今私はに適用しmiddlewareたい

Route::get('login', 'WebController@login');

これどうやってするの?

私が試してみました;

Route::get('login', ['middleware' => ['qwickAuth'], 'WebController@login');

Laravel のサイトには多くのドキュメントがありますが、何らかの理由ですべてのコードが、人々がこのフレームワークをどのように使用しているかのスニペットを提供していません。ミドルウェアのドキュメントでは、彼らが提供したのはこれだけでした。

Route::get('admin/profile', ['middleware' => 'auth', function () {
    //
}]);

自分functionのルートに

4

2 に答える 2

2

Marcinsの結果は機能しますが、この方法でも実行できます

Route::get('login', 'WebController@login')->middleware(['qwickAuth']);
于 2015-12-28T21:09:21.803 に答える
1

以下を使用する必要があります。

Route::get('login', ['middleware' => ['qwickAuth'], 'uses' =>'WebController@login']);

usesここにルーティングの例があります: https://laravel.com/docs/5.2/routing#named-routes

于 2015-12-28T20:15:31.830 に答える