2024-01-18
우선 Laravel 유효성 검사는 아래의 링크에서 자세히 확인 가능하다
링크: https://laravel.kr/docs/9.x/validation

그럼 이제 유효성 검사 소스를 보자
public function user_insert($request){
	$validat_arr = [
		'post_user_id' => 'required|min:6|max:30',
		//'post_passowrd' => 'required|min:8|regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%]).*$/',
		'post_passowrd' => 'required|min:8|regex:/[a-zA-Z]/|regex:/[0-9]/|regex:/[`~!@#$%^&*()-_=+,.<>?;:]/',
	];

	$validateData = $request->validate($validat_arr);

	.
	.
	.
}
위 소스는 유저의 아이디와 비밀번호를 넘겨 받아서,
아이디는 6~30자의 길이를 가지는 조건으로,
비밀번호는 8자 이상의 영문대소문자, 숫자, 특수문자를 1개 이상 포함해야 한다는 조건으로 한 유효성 검사이다.

그런데 위의 조건에 걸려서, 리턴되는 메세지 값은 Laravel에서 지정한 값으로 설정 되기 때문에 resources > lang > ko > validation.php에서 메세지 값을 아래와 같이 바꿔 주어야 한다.
'custom' => [
	'post_passowrd' => [
		'regex' => '영문대소문자, 숫자, 특수문자를 1개 이상 포함해야 합니다.',
	],
],
custom 부분을 위와 같이 해놓으면, post_passowrd라는 request값의 regex유효성 검사의 메세지는 지정된 내용으로 바뀌게 된다.