XpressEngine
  • INTRODUCE
  • 시작하기
    • 권장 사양
    • 터미널 환경 설치
    • 웹 환경 설치
    • 업데이트
    • 문제 해결(디버깅)
  • 사이트 설정
    • 회원 설정 및 관리
    • 관리자 비밀번호 설정
    • 사이트맵 추가 및 제거
    • 컨텐츠 관리 및 신고 집계
    • Store 토큰 설정
    • 익스텐션 설치 / 업데이트
    • 기본 테마 설정
    • SEO 설정
    • 다국어 설정
    • 캡챠 설정
  • 번들 플러그인
    • 미디어 라이브러리
    • 외부페이지 플러그인
    • 플러그인 업로드
  • 개발자 문서
    • 개요
    • 디렉토리 구조
    • 컴포넌트
    • 플러그인
    • 서비스
    • 라이프 사이클
    • 라우팅
    • 컨트롤러
    • 요청
    • 응답
    • 프레젠터
    • 뷰
    • 템플릿
  • 플러그인 개발
    • 개요
    • 기본경로 및 구조
    • 기본 플러그인 생성
    • 플러그인 정보 추가 및 수정
    • 관리자 사이트 메뉴 추가
    • 위젯 개발/제작
    • 모듈 개발/제작
    • 에디터 제작
    • 에디터 툴 제작
    • UI 오프젝트 제작
    • 토글 메뉴 제작
    • 다이나믹 필드 제작
    • 다이나믹 필드 스킨 제작
  • 테마 개발/제작
    • 기본경로 및 구조
    • 기본 테마 생성
    • 서브 테마 활용
    • 설정 파일 작성
    • 테마 편집 기능
  • 스킨 개발/제작
    • 기본경로 및 구조
    • 기본 스킨 생성
    • 설정 파일 작성
  • 서비스
    • 카테고리
    • 캡챠
    • 설정
    • 문서
    • 키생성(Keygen)
    • 메뉴/모듈
    • 이벤트/인터셉션
    • 파일/스토리지
    • 회원/인증
    • 모바일
    • 권한
    • 데이터베이스
    • 메일
    • 프론트엔드
    • 이미지처리
    • 세션
    • 헬퍼
    • 쿠키
    • UI오브젝트/폼빌더
    • 카운터
    • 휴지통
    • 유효성검사
    • 오류처리
    • 테마
    • 위젯박스
  • 프론트엔드 (JS)
    • 프론트 엔드 JS 시작하기
    • Lang
    • Page
    • Page Modal
    • Request
    • Validator
Powered by GitBook
On this page
  • Response 사용의 제한
  • 리다이렉트
  • 리다이렉트 반환하기
  • 리다이렉트에 플래시 데이터와 함께 반환하기
  • 이전 URL로 리다이렉트
  • 이름이 지정된 라우트로 리다이렉트 하기
  • 이름이 지정된 라우트로 파라미터와 함께 리다이렉트 하기
  • 이름지 지정된 라우트로 파라미터 이름과 함께 리다이렉트 하기
  • 컨트롤러 액션으로 리다이렉트 하기
  • 컨트롤러 액션으로 파라미터와 함께 리다이렉트 하기
  • 컨트롤러 액션으로 파라미터 이름과 함께 리다이렉트 하기
  • 기타 Response
  • JSON response 생성하기
  • JSONP Response 생성하기
  • 파일 다운로드 Response 생성하기

Was this helpful?

  1. 개발자 문서

응답

Previous요청Next프레젠터

Last updated 5 years ago

Was this helpful?

Response 사용의 제한

XE의 기본 프레임워크인 라라벨에서는 대부분의 라우트나 컨트롤러 액션에서 Illuminate\Http\Response의 인스턴스나 를 반환하도록 합니다.

하지만 XE는 웹 브라우저로 html 형식의 응답을 보낼 때, 스킨과 테마를 적용한 후 보내야 합니다. 특별한 경우가 아니라면 컨트롤러에서 Illuminate\Http\Response 인스턴스나 뷰를 직접 반환(return)하지 마십시오. 대신, 를 사용하여 반환하십시오. 반드시 를 사용해야만 테마와 스킨이 적용되고 위젯 또한 정상적으로 출력됩니다.

리다이렉트

일반적으로 리다이렉트 Response는 Illuminate\Http\RedirectResponse 클래스의 인스턴스이며, 사용자를 다른 URL로 리다이렉트하는 데 필요한 적절한 헤더를 포함하고 있습니다.

리다이렉트 반환하기

RedirectResponse 인스턴스를 생성하는 데는 몇 가지 방법이 있습니다. 가장 간단한 방법은 redirect 헬퍼 함수를 사용하는 것입니다. 테스트를 진행할 때 리다이렉트 Response를 생성하는 모킹(Mock)은 일반적으로 잘 하지 않기 때문에, 대부분의 경우에 헬퍼 함수를 사용하게 됩니다.

return redirect('user/login');

리다이렉트에 플래시 데이터와 함께 반환하기

새로운 URL로 리다이렉트 이동하고 플래시 데이터를 세션에 저장 하는 것은 일반적으로 동시에 진행됩니다. 따라서 편의성을 높이기 위해 RedirectResponse 인스턴스를 생성하고 동시에 메소드 체인을 통해 플래시 데이터를 세션에 저장할 수 있습니다:

return redirect('user/login')->with('message', 'Login Failed');

이전 URL로 리다이렉트

예를 들어, 폼 전송 후에, 사용자를 이전 URL로 리다이렉트 시키고자 하는 경우가 있을 수 있습니다. 이런 경우에는 back 메소드를 사용하면 됩니다:

return redirect()->back();

return redirect()->back()->withInput();

이름이 지정된 라우트로 리다이렉트 하기

전달 인자 없이 redirect 헬퍼 함수를 호출할 때에는 Illuminate\Routing\Redirector의 인스턴스가 반환됩니다. 따라서 Redirector 인스턴스의 메소드를 사용할 수 있습니다. 예를 들어, 이름지 지정된 라우트로 이동하는 RedirectResponse를 생성하고자 한다면 route 메소드를 사용할 수 있습니다:

return redirect()->route('login');

이름이 지정된 라우트로 파라미터와 함께 리다이렉트 하기

라우트에 전달해야 할 파라미터가 있다면 route 메소드의 두 번째 인자로 전달하면 됩니다.

// For a route with the following URI: profile/{id}

return redirect()->route('profile', [1]);

이름지 지정된 라우트로 파라미터 이름과 함께 리다이렉트 하기

// For a route with the following URI: profile/{user}

return redirect()->route('profile', ['user' => 1]);

컨트롤러 액션으로 리다이렉트 하기

이름이 지정된 라우트로 이동하는 RedirectResponse 인스턴스를 생성하는것과 비슷하게 컨트롤러 액션으로 리다이렉션 할 수 있습니다.

return redirect()->action('App\Http\Controllers\HomeController@index');

주의: URL:setRootControllerNamespace를 통해서 컨트롤러의 루트 네임스페이스가 지정되었다면, 전체 네임 스페이스를 지정할 필요가 없습니다.

컨트롤러 액션으로 파라미터와 함께 리다이렉트 하기

return redirect()->action('App\Http\Controllers\UserController@profile', [1]);

컨트롤러 액션으로 파라미터 이름과 함께 리다이렉트 하기

return redirect()->action('App\Http\Controllers\UserController@profile', ['user' => 1]);

기타 Response

response 헬퍼 함수를 사용하여 편리하게 다른 타입의 response 인스턴스를 생성할 수도 있습니다. response 헬퍼함수를 인자없이 호출하게 되면 Illuminate\Contracts\Routing\ResponseFactory contract를 반환합니다. 이 contract는 response를 생성하기 위한 다양한 메소드를 제공합니다.

JSON response 생성하기

json 메소드는 헤더의 Content-Type을 자동으로 application/json으로 지정합니다:

return response()->json(['name' => 'Abigail', 'state' => 'CA']);

JSONP Response 생성하기

return response()->json(['name' => 'Abigail', 'state' => 'CA'])
                 ->setCallback($request->input('callback'));

파일 다운로드 Response 생성하기

return response()->download($pathToFile);

return response()->download($pathToFile, $name, $headers);

return response()->download($pathToFile)->deleteFileAfterSend(true);

참고: 파일 다운로드를 관리하는 Symfony의 HttpFoundation에서 다운로드 할 파일의 이름이 ASCII 파일 이름임을 필요로 하고 있습니다.

뷰
프레젠터
프레젠터