이전까지는 Session에 한가지 키를 조회하는 get
과 전체를 조회하는 all
만 있었다. 전체를 조회하지 않는 한 두 개 이상의 데이터를 한 번에 조회하는 방법은 없었다. 그래서 세션에서 여러값을 가져오려면 아래와 같이 해야했다.
$count = $request->session()->get('count');
$done = $request->session()->get('done');
$fromSession = [
'count' => $count,
'done' => $done
];
혹은
$allFromSession = $request->session()->all();
$fromSession = [
'count' => $allFromSession['count'],
'done' => $allFromSession['done']
];
Arr::only()
헬퍼를 사용해서 다음과 같이 할 수도 있었다.
$allFromSession = $request->session()->all();
$fromSession = Arr::only($allFromSession, ['count', 'done']);
이번에 Session
에 only()
메소드가 추가됨에 따라, 두 개 이상의 세션 데이터를 한 번에 가져올 수 있게 됐다.
$fromSession = $request->session()->only(['count', 'done'])
only
는 인자로 배열만 받으며, 하나만 조회하려고 해도 배열로 값을 넘겨야 한다.(사실 하나를 조회할 땐 전용 메소드인 get
을 쓰면 된다.)
사소하지만 알아두면 쪼~금 더 편해질 듯 하다.
===
2019년 7월 12일
1일 1식 라라벨
메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 처음부터 제대로 배우는 라라벨(Laravel Up & Running 2nd Edition)을 번역했습니다.