Laravel 드롭다운 메뉴에 Admin Panel 추가 및 디자인 변경

포스트 썸네일 이미지

이번 포스트에서는 관리자 계정으로 로그인했을 경우에 내비게이션의 드롭다운 메뉴에 filament 관리자 패널로 이동하는 링크를 만들어 보겠다.

그리고 내비게이션의 라라벨 로고(웹사이트의 로고가 들어갈 자리)를 클릭하면 대시보드가 아닌 웹사이트의 홈 화면으로 이동하도록 수정하고, http://localhost/admin으로 가면 일반 로그인 페이지로 리다이렉트 되도록 수정해 보겠다.




이전 포스트




전체적인 코드 수정은 이 깃허브 링크를 통해서 확인할 수 있다.




web.php에서 라우트에 이름을 부여


Route::view('/', 'welcome')
    ->name('/');

->name('/');을 추가했다.

웹사이트의 첫 페이지(welcome 페이지)로 가는 라우트에 이름을 부여했다.





livewire/layout/navigation.blade.php 파일 수정


<a href="{{ route('/') }}" wire:navigate>

dashboard를 삭제하고 /를 넣었다.

메뉴의 로고를 클릭하면 대시보드 대신 welcome 페이지로 이동하도록 수정한 것이다.




수정 전의 드롭다운 메뉴

이건 수정하기 전의 드롭다운 메뉴의 모습이다.




<x-slot name="content">
    <!-- Account Management -->
    <div class="block px-4 py-2 text-xs text-gray-400">
        {{ __('Manage Account') }}
    </div>

    <x-dropdown-link :href="route('profile')" wire:navigate>
        {{ __('Profile') }}
    </x-dropdown-link>

    @role('admin')
        <div class="border-t border-gray-200 dark:border-gray-400"></div>

        <div class="block px-4 py-2 text-xs text-gray-400">
            {{ __('Manage Site') }}
        </div>

        <x-dropdown-link href="/admin">
            {{ __('Admin Panel') }}
        </x-dropdown-link>
    @endrole

    <div class="border-t border-gray-200 dark:border-gray-400"></div>

    <!-- Authentication -->
    <button wire:click="logout" class="w-full text-start">
        <x-dropdown-link>
            {{ __('Log Out') }}
        </x-dropdown-link>
    </button>
</x-slot>

어떤 코드를 추가한 것인지, 그리고 코드를 추가하는 위치 등은 깃허브 링크를 참고하자.


드롭다운 메뉴에 Admin Panel로 이동하는 메뉴를 추가했다.

이 메뉴는 admin 역할의 사용자에게만 보이도록 @role('admin')@endrole로 감쌌다.




@role('admin')
    <x-responsive-nav-link href="/admin">
        {{ __('Admin Panel') }}
    </x-responsive-nav-link>
@endrole

모바일 화면에도 잊지 말고 Admin Panel 메뉴를 추가하자.




@role('admin')에 대해서는 이 링크를 참고하자.





lang/ko.json 파일 수정


lang/ko.json에 추가할 코드

"Manage Account": "계정 관리",
"Manage Site": "웹사이트 관리",
"Admin Panel": "관리자 패널",

navigation.blade.php에서 :value="__(' ')" 속성 안에 입력된 영어가 한글로 뜨도록 lang/ko.json에서 적절한 위치에 이 코드를 추가한다.




수정 후의 드롭다운 메뉴

수정 후의 드롭다운 메뉴의 모습이다.

관리자 계정으로 로그인했을 경우에만 이렇게 Admin Panel로 이동하는 링크가 표시된다.




AdminPanelProvider.php 파일 수정


->login()

이 코드들을 삭제한다.


이 코드를 제거하면 관리자 로그인 페이지 설정이 삭제된다.

즉, 이전에는 비로그인 상태에서 /admin 경로로 가면 관리자 로그인 페이지가 떴는데, 이제는 관리자 로그인 페이지가 사라지게 되고, 일반 로그인 페이지로 리다이렉트 된다.




다음 포스트

이 글이 도움이 됐거나 유익했다면 스크롤을 조금만 더 내려서 댓글을 남겨주세요. (비로그인도 가능합니다!)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊

지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.
이전 포스트 다음 포스트

댓글 쓰기

0 Comments

문의하기 양식