Laravel/Inertia.js
-
로그인 후 view layout 안바뀔 때 (redirect intended 쓰면 안됨) #멀티레이아웃 #layoutLaravel/Inertia.js 2023. 1. 29. 17:54
# What? - 한 프로젝트 브랜드, 쇼핑몰, 관리자용 레이아웃을 따로 쓸 때, 로그인 쇼핑몰 레이아웃에 있는데, 쇼핑몰에서 로그인 후 브랜드 홈페이지로 이동하면 레이아웃 업데이트가 제대로 안돼서 다 깨져서 나오는 경우가 있음 # How? - redirect()->intended() 쓰지말고 redirect에 intended url을 받아서 직접 넣어주기 return redirect(redirect()->intended()->getTargetUrl());
-
lang, translate, locale, 다국어, global 언어 지원하기(laravel + inertia.js + nuxt 버전 추가)Laravel/Inertia.js 2022. 10. 29. 13:03
* nuxt 버전은 blueprep.com (모의고사) 참고 (아래 글도 남겨놓긴함) # What? inerita.js에서 laravel lang 사용하는법 # How? 1. 일단 lang 폴더 밑에 en, ko 등 지원하고자하는 나라별 php 언어파일 만들기 2. 파일시스템 설정하기 @ filesystems.php 'disks' => [ 'languages' => [ 'driver' => 'local', 'root' => base_path('resources/lang'), ], ], 3. 언어파일 php를 json으로 변환해줄 명령어 만들기 @ app/Console/Commands/CreateJsonTranslationFileCommand.php
-
Root View 변경하는법 (루트 뷰, 레이아웃)Laravel/Inertia.js 2022. 8. 27. 13:45
# What? - 한 사이트 내 다른 레이아웃 2개를 사용하고싶을 때 url에 따른 레이아웃 변경 필요 # How? @HandleInertiaRequests.php protected $rootView = 'app'; ... public function rootView(Request $request) { if(str_contains($request->path(), "shopping")) $this->rootView = "shopping"; else $this->rootView = "brand"; return parent::rootView($request); // TODO: Change the autogenerated stub } @ resources/views에 brand.blade.php, shoppin..
-
검색 필터 및 더보기 구현(#Filter #Search #LoadMore)Laravel/Inertia.js 2021. 11. 16. 15:16
# What? 스크롤 유지하면서 리스트 필터링 및 더보기 구현 # Why? 요즘은 페이지 바뀌면서 스크롤 초기화되는거 지양 # How? 1. form을 watch로 검사하지 말고 각 input에 @change를 걸어 filter 메소드 호출하게 하기 2. preserveScroll : true 옵션으로 스크롤 유지하기 3. replace: true 옵션으로 페이지 히스토리를 남기지 않고 뒤로가기 시 진짜 이전 페이지로 이동하게끔 하기(안그러면 필터값 바꿀때마다의 페이지 히스토리 다 남아서 뒤로가기 시 몇번을 눌러대야함) 4. preserveState : true 옵션으로 더보기 구현 시 이전 데이터 리스트에 새로 불러온 데이터 리스트를 추가하기 전체 {{ category.title }} 인기순 최신순 데..
-
Shared DataLaravel/Inertia.js 2021. 9. 21. 21:39
# What? - 전역변수처럼 프론트단 어떤 페이지에서나 가져다 쓸 수 있게 공유되는 데이터 # Why? - User나 Flash 메시지같은거 공유 필요 # How? @HandleInertiaRequests public function share(Request $request) { return array_merge(parent::share($request), [ "user" => auth()->user(), "flash" => function() use ($request){ return [ "success" => $request->session()->get("success"), "error" => $request->session()->get("error"), ]; }, // 기타 공유하고픈 데이터 ]);..