직접 MessageBag 클래스 생성 사용 예쩨

모든 메시지는 키를 사용하여 그룹화

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 에 사용할 수 있다.