이 작업은 컨트롤러에서 소스를 빼내어 Requests\ArticlesRequest.php 로 대체한다는 개념이다.
컨트롤러 소스가 간단해진다. 즉 컨트롤러에서 ArticlesRequest.php 를 인서트한다고 생각하자.
일단 블레이드 폼을 만들자. 여긴 알아서...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | @extends('master') @section('content') <h1>보드명 작성</h1> <form class="ui form" method="POST" action="/boardnames"> @csrf <div class="field"> <input class="input {{ $errors->has('title') ? 'is-danger' : '' }}" type="text" name="board_name" value="{{ old('title') }}" placeholder="보드명"> </div> <div class="field"> <input class="input {{ $errors->has('top_num') ? 'is-danger' : '' }}" type="number" name="top_num" value="{{ old('top_num') }}" placeholder="Top부품수량"> </div> <div class="field"> <input class="input {{ $errors->has('bot_num') ? 'is-danger' : '' }}" type="number" name="bot_num" value="{{ old('bot_num') }}" placeholder="Bot부품수량"> </div> <div class="field"> <input class="input {{ $errors->has('unit') ? 'is-danger' : '' }}" type="text" name="unit" value="{{ old('unit') }}" placeholder="차종"> </div> <div class="field"> <input class="input {{ $errors->has('note') ? 'is-danger' : '' }}" type="text" name="note" value="{{ old('unit') }}" placeholder="메모"> </div> <div class="field"> <button class="ui button" type="submit">글 작성</button> </div> </form> @if($errors->any()) <div class="ui pink inverted segment"> <ul> @foreach ($errors->all() as $error) <li>{{$error}}</li> @endforeach </ul> </div> @endif @foreach ($boardnames as $boardname) {!! $boardname->board_name.'<br>' !!} @endforeach @endsection | cs |
리퀘스트 만들기
1 | php artisan make:request BoardNameRequest | cs |
app/http/Controllers/Requests/BoardNameRequest.php 파일이 생성된다. 이 파일을 열자
rules(){ } , messages(){ } 메서드를 작성한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class BoardNameRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'board_name' => 'required', 'top_num' => 'required', 'bot_num' => 'required', 'unit' => 'required', ]; } public function messages() { return [ 'board_name.required' => '시작 번호는 필수 입력 항목입니다.', 'top_num.required' => 'Top 부품 수량 필수 입력 항목입니다.', 'bot_num.required' => 'Bot 부품 수량 입력 항목입니다.', 'unit.required' => '차종 필수 입력 항목입니다.', ]; } } | cs |
그다음 BoardNamesController.php 파일을 열어서 상단에 아래소스를 추가
1 | use App\Http\Requests\BoardNameRequest; | cs |
그리고 메서드에 인자로 넘겨줘야한다. BoardNameRequest
1 | public function store(BoardNameRequest $request) | cs |
실행해보면 아래와 같이 입력을 하지 않으면 에러메시지가 나온다.
'라라벨 > 유효성검사' 카테고리의 다른 글
입력값 유효성 검사 (0) | 2019.04.19 |
---|