【Laravel】FormRequestでHTTPメソッドによってルールを変更する

公開日:2018-11-04
最終更新:2018-11-04

概要と環境

storeとupdateでバリデーションルールを変更したかった。 リクエストを2種類作っても良かったのですが、それはそれで保守が面倒そうだったので。

こんな感じで仕様を決めてみる。

  • 新規作成時は空白でもOK かつ 2000文字以下
  • 更新時は空白はだめ かつ 2000文字以下

環境はPHP7.1, Laravel5.6
フロントにはVue.jsを利用している。

コード

まずはファイルを作成する。

php artisan make:request PageRequest

で、下が実際のコード。

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class PageRequest extends FormRequest
{
    /**
     * 変数
     */
    protected $descriptionMaxLength = 2000;

    public function rules()
    {
        if ($this->isMethod('post')) {
            // 新規投稿時
            return [
                'description' => "max:{$this->descriptionMaxLength}",
            ];
        }else {
            // それ以外(更新時)
            return [
                'description' => "required|max:{$this->descriptionMaxLength}",
            ];
        }

    }
}

これだけ。 この文字数はqiitaには恐れ多くてアップできない。

記事が少しでもいいなと思ったらクラップを送ってみよう!
54
+1
@rtrx8の技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする