
フォームリクエスト用のカスタムバリデーションの作り方
もくじ
関連 実践的なの
親を用意する
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のパス以外で使わせないようにする

