PHP

Laravel カスタムバリデーション

Laravel

フォームリクエスト用のカスタムバリデーションの作り方

 

関連 実践的なの

Laravel Request Ruleでバリデーション

 

 

親を用意する

 

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のパス以外で使わせないようにする

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)