모든 메시지는 키를 사용하여 그룹화
Illuminate\\Support\\MessageBag 클래스 사용
$message = [
'errors' =>[
'수정하는 데 오류가 발생했습니다.!',
],
'message' => [
'수정 작업이 완료되었습니다',
],
];
$messagebag = new \\Illuminate\\Support\\MessageBag($messages);
// 에러 메시지가 있는지 확인하여 조건을 만족하는 경우 메시지를 출력한다.
if($messagebag -> has('errors')) {
echo '<ul id="errors">';
foreach ($messagebag->get('errors', '<li><b>:message</b></li>') as $error){
echo $error;
}
echo '</ul>';
}
라라벨은 모든 뷰 파일에 값이 빈 MessageBag 인트턴스를 $errors 라는 변수에 할당하여 전달
이는 모든 뷰 파일에서 MessageBag 타입의 $errors 변수를 사용할수 있다는 뜻
// partials/errors.blade.php
@if($errors->any())
<div class="alert alert-danger">
<ul>
@foreach($errors as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
만약 등록한 라우트에 web 그룹 미들웨어가 지정되어 있지 않다면 내부적으로 세션 미들웨어가
적용되지 않는다. $errors 변수를 사용하기 위해서는 이 미들웨어가 필요하므로 web 그룹 미들웨어가 지정되지 않았다면 $errors 변수를 사용할 수 없다.
redirect('dashboard')->withErrors($validator, 'login')
과 같이 호출했다면 대시보드 페이지에서 이전에 보았던 any(), count() 와 같은
메서드를 $errors->login 에 사용할 수 있다.