Laravel 6.x : Validation で 特定の条件の場合のみ必須(required_if)、それ以外の場合はNULLを許容(nullable)する

ドキュメント

required_if:他のフィールド,値,...
  他のフィールドが値のどれかと一致している場合、このフィールドが存在し、かつ空でないことをバリデートします。
string
  フィルードは文字列タイプであることをバリデートします。
  フィールドがnullであることも許す場合は、そのフィールドにnullableルールも指定してください。
nullable
  フィールドがnullでも良いことをバリデートします。
  これはとくにnull値を含む文字列や整数のようなプリミティブをバリデートする場合に便利です。

サンプル

use Illuminate\Foundation\Http\FormRequest;

final class XxxRequest extends FormRequest implements XxxRequestInterface
{
    /**
     * @return array
     */
    public function rules(): array
    {
        // title が hoge の場合のみ、body を必須に、それ以外の場合は NULL を許容
        return [
            'body' => [
                'nullable',
                'required_if:title,hoge', //required_if:他のフィールド,値,...
                'string',
                'max:500',
            ],
        ];
    }
}
// nullable も指定しておかないと、body が常に必須になってしまう
        return [
            'body' => [
                'required_if:title,hoge',
                'string',
                'max:500',
            ],
        ];