Request 객체란
Illuminate\Http\Request는 애플리케이션이 받는 HTTP 요청을 객체 지향적으로 다루기 위한 클래스입니다.
폼 데이터·쿼리 문자열·파일·헤더 등 요청에 포함되는 모든 정보에 접근할 수 있습니다.
컨트롤러에 요청 주입
컨트롤러의 메서드에서Illuminate\Http\Request를 타입 힌트하면, Laravel의 서비스 컨테이너가 자동으로 요청 인스턴스를 주입합니다.
라우트 파라미터와의 병용
컨트롤러 메서드가 라우트 파라미터도 받는 경우,Request 뒤에 라우트 파라미터를 작성합니다.
요청 데이터 가져오기
모든 입력 데이터 가져오기
all 메서드로 모든 입력 데이터를 배열로 가져옵니다.
HTML 폼에서의 요청에서도 XHR 요청에서도 사용할 수 있습니다.
특정 필드 가져오기
input 메서드는 HTTP 메서드와 상관없이, 요청 페이로드 전체(쿼리 문자열 포함)에서 값을 가져옵니다.
쿼리 문자열 가져오기
query 메서드는 쿼리 문자열(URL의 ? 이후)에서만 값을 가져옵니다.
input은 요청 본문과 쿼리 문자열 양쪽을 대상으로 하지만, query는 쿼리 문자열만을 대상으로 합니다.
폼의 POST 데이터와 URL 파라미터를 구별하고 싶은 경우에는 query를 사용합시다.타입 지정 가져오기
input 이외에도 타입을 지정해 입력 값을 가져오는 메서드가 있습니다.
동적 프로퍼티
필드 이름을 그대로 프로퍼티로 접근할 수도 있습니다.입력 데이터의 일부 가져오기
only와 except로 입력 데이터의 서브셋을 가져올 수 있습니다.
입력의 존재 확인
has 메서드로 값이 요청에 포함되어 있는지 확인합니다.
filled를 사용합니다.
isNotFilled를 사용합니다.
요청의 경로와 메서드 확인
경로 가져오기와 확인
URL 가져오기
HTTP 메서드 확인
isMethod로 HTTP 메서드를 확인할 수 있습니다.
파일 업로드
업로드된 파일 가져오기
file 메서드로 업로드된 파일을 가져옵니다.
Illuminate\Http\UploadedFile 인스턴스가 반환됩니다.
hasFile을 사용합니다.
파일 저장
store 메서드로 파일을 스토리지에 저장합니다.
파일명은 자동으로 생성됩니다.
storeAs를 사용합니다.
실전 예시: 폼 데이터 받기
사용자 등록 폼의 데이터를 컨트롤러에서 받는 예시입니다.다음 단계
미들웨어
요청을 필터링하는 미들웨어의 사용법을 되짚어 봅니다.