前回までの状況はこちら。
最新ソースはこちら。
https://github.com/takishita2nd/hotel-mng
バリデーション処理とは、フォームで入力した値が、正しいかどうかを確認する処理です。
現在は入力された値がそのままデータベースに入るようになってしまっているので、パラメータチェック処理を入れて、エラーを返せるようにします。
今回は実装量が少ない方法で行きます。
以下のコマンドを入力。
$ php artisan make:request ManagementRequest
そうすると、App/Http/Request/ManagementRequest.phpが作成されます。
その内容を修正します。
class ManagementRequest 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 [
'name' => 'required|string',
'address' => 'required|string',
'phone' => 'required|digits:11',
'num' => 'required|numeric|digits_between:1,2',
'days' => 'required|numeric|digits_between:1,4',
'start_day' => 'required|date',
];
}
}
authorize()の戻り値はtrueに変えます。
falseのままだとすべて認証エラーとなります。
rules()に各パラメータの確認内容を記入します。
こちらのサイトが参考になります。
https://qiita.com/fagai/items/9904409d3703ef6f79a2
あとは、コントローラーを変更します。
use App\Http\Requests\ManagementRequest;
/**
* 登録処理
*/
public function store(ManagementRequest $request)
/**
* 更新処理
*/
public function update(ManagementRequest $request)
確認を行うフォームのリスエスト処理の引数の型をManagementRequestに変更します。
これで、App/Http/Request/ManagementRequest.phpの内容が適用されます。
あとは、bladeにエラーを表示する領域を追加すればOK。
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif

クリックで応援よろしくお願いします。