フォームリクエスト用のカスタムバリデーションの作り方
もくじ
関連 実践的なの
親を用意する
app/Http/Requests/Request.phpを作成
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; abstract class Request extends FormRequest { // }
子を用意する
app/Http/Requests/UserInsertRequest.php
<?php namespace App\Http\Requests; use App\Http\Requests\Request; class GoalInsertRequest extends Request { /** * 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 [ 'section_id' => 'required|integer', 'year_period' => 'required|string', 'budget' => 'integer', 'user_ids.*' => 'integer|distinct', 'user_sales.*' => 'integer' ]; } }
配列へのバリデーション
name=”user_scores[]”みたいなフォームの配列には.*をつけることで、1つ1つにバリデーションチェックができます。
値の重複チェック
'user_ids.*' => 'integer|distinct'
authorize()
許可する定義を行う
パスで許可を行う場合
public function authorize() { if ($this->path() == 'addProject') { return true; } else { return false; } }
/addProjectのパス以外で使わせないようにする