Laravel 5.5に関するメモです。

常時SSLミドルウェアの作成

  1. artisanコマンドでミドルウェアの雛形を作成する。

    php artisan make:middleware AlwaysOnSsl
  2. app/Http/Middleware/AlwaysOnSsl.phpを修正する。

    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    
    // 常時SSL
    class AlwaysOnSsl
    {
        /**
        * Handle an incoming request.
        *
        * @param  \Illuminate\Http\Request  $request
        * @param  \Closure  $next
        * @return mixed
        */
        public function handle($request, Closure $next)
        {
            if (!$request->secure() && !config('app.debug'))
            {
                return redirect()->secure($request->path());
            }
            return $next($request);
        }
    }
  3. app/Http/Kernel.phpを修正する。

    <?php
    
    namespace App\Http;
    
    use Illuminate\Foundation\Http\Kernel as HttpKernel;
    
    class Kernel extends HttpKernel
    {
        /**
        * The application's global HTTP middleware stack.
        *
        * These middleware are run during every request to your application.
        *
        * @var array
        */
        protected $middleware = [
            \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
            \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
            \App\Http\Middleware\TrimStrings::class,
            \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
            \App\Http\Middleware\TrustProxies::class,
            \App\Http\Middleware\AlwaysOnSsl::class, // <= ここにプロバイダーを追加
        ];
    
        /**
        * 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\Session\Middleware\AuthenticateSession::class,
                \Illuminate\View\Middleware\ShareErrorsFromSession::class,
                \App\Http\Middleware\VerifyCsrfToken::class,
                \Illuminate\Routing\Middleware\SubstituteBindings::class,
            ],
    
            'api' => [
                'throttle:60,1',
                'bindings',
            ],
        ];
    
        /**
        * The application's route middleware.
        *
        * These middleware may be assigned to groups or used individually.
        *
        * @var array
        */
        protected $routeMiddleware = [
            'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
            'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
            'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
            'can' => \Illuminate\Auth\Middleware\Authorize::class,
            'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
            'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        ];
    }

Bootstrap4対応のページネーション

  1. artisanコマンドで、ページネーション用ビューを生成する。

    php artisan vendor:publish --tag=laravel-pagination
  2. default.blade.phpをbootstrap-4.blade.phpに置き換える。

参考資料

前の記事 次の記事