Laravel

[Laravel] Javascript에서 설정한 쿠키값 laravel에서 사용하기

이나피스 2024. 2. 21. 10:53
반응형

SPA라면 사이드바를 열고 닫는것에 문제가 없겠지만

페이지 이동이 있는 사이트의 경우 사이드바를 닫아두어도 디폴드가 열려있다면 이동시에도 열린것을 확인할수있다

이를 저장하기 위해 JS에서 'sidebar'라는 쿠키값을 설정하였다

$(document).ready(function(){
    const sidebar = $('.sidebar');
    const toggle = $(".toggle");

    rememberCookie(sidebar);
    toggle.on("click" , () =>{
        if($.cookie('sidebar')==='close') {
            $.cookie('sidebar', 'open', {path: '/'});
        } else {
            $.cookie('sidebar', 'close', {path: '/'});
        }
        rememberCookie(sidebar);
    });
});

function rememberCookie(sidebar){
    if($.cookie('sidebar')==='close') {
        sidebar.addClass("close");
    } else {
        sidebar.removeClass("close");
    }
}

 

이 쿠키값으로 blade view에서 값을 불러오고 싶었다

이럴땐 의외로 매우 간단하게 미들웨어에 쿠키이름만 설정 해주면된다

 

@app/Http/Middleware/EncryptCookies.php

<?php

namespace App\Http\Middleware;

use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;

class EncryptCookies extends Middleware
{
    /**
     * The names of the cookies that should not be encrypted.
     *
     * @var array<int, string>
     */
    protected $except = [
        'sidebar'
    ];
}

 

설정 후 blade에서 쿠키 값을 확인할수 있다

{{ Cookie::get('sidebar'); }}
 
반응형