PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Wednesday, January 19, 2022

[FIXED] How can I validate the sum of the values in Laravel?

 January 19, 2022     laravel, php, validation     No comments   

Issue

I have 3 input tag with type number in blade.php. I want to validate the sum is equal to 100. So, how to do that? Thanks for your help.

Blade.php

<input type="number" name="number1" />
<input type="number" name="number2" />
<input type="number" name="number3" />

Controller

 public function store(Request $request) {
    $data = $request->validate([
       'number1' => 'required',
       'number2' => 'required',
       'number3' => 'required',
    ]);
    $sum = $data['number1'] + $data['number2'] + $data['number3'];
    $myDb = new Mynumber();
    $myDb->number1 = $data['number1'];
    $myDb->number2 = $data['number2'];
    $myDb->number3 = $data['number3'];
    $myDb->save();
 }

Solution

You can extend the validator with a new rule by adding this in a service provider:

$validator->extend("sumsTo", function ($attribute, $value, $parameters) {
   $expected = floatval(array_shift($parameters));
   $otherParameters = request()->only($parameters);
   return floatval(array_sum(array_merge(array_values($otherParameters), [ $value ]))) === $expected;
});

Then you'd use this as:

$request->validate([
      'field1' => 'sumsTo:100,field2,field3',
      'field2' => 'sumsTo:100,field1,field3'
      'field3' => 'sumsTo:100,field1,field2'
]);

This will flag all 3 fields as failed as well.



Answered By - apokryfos
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing