-
Shared DataLaravel/Inertia.js 2021. 9. 21. 21:39반응형SMALL
# 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"), ]; }, // 기타 공유하고픈 데이터 ]); }
@ ContactController(플래시 메시지 전달 예시)
public function store(Request $request) { ... // success에 메시지 담기 return Redirect::back()->with("success", "Contact has been received!"); }
@ ContactCreate.vue(플래시 메시지 사용 예시)
... methods: { submitContact(){ this.contactForm.post("/contacts", { preserveScroll: true, onSuccess: (response) => { alert(this.$page.props.flash.success); // 또는 alert(response.props.flash.success); this.contactForm.reset() } }) } }
@ Header.vue(v-if 로그인 안한 유저라면)
<template> <a href="#" class="util" v-if="!$page.props.user"> <span class="icon-wrap"> <img src="/img/user-white.png" alt="" class="icon"> </span> LOGIN </a> </template>
LIST'Laravel > Inertia.js' 카테고리의 다른 글
Inertia.js에서 AOS 사용하는법 (0) 2022.05.21 Inertia.js 외부링크로 redirect하는법(결제 요청 시 필요) (0) 2022.05.13 검색 필터 및 더보기 구현(#Filter #Search #LoadMore) (0) 2021.11.16 레이아웃 설정법 (0) 2021.09.21 초기세팅 (0) 2021.09.07