1

I am making an iOS app with Alamofire as the HTTP Request handler, and in the iOS App, i want to send a JSON payload to a Laravel API server. More or less, the JSON structure looks like this:

{
    "test_data": "Any data is here",
    "another_data": "Another data is here"
}

Now, in my Laravel project, I've been implementing a validation rule, basically to validate that those 2 params in the JSON is required and in a type of String. Here's my code to implement the validator:

$validator = Validator::make($request->all(), [
    'test_data' => 'required|string',
    'another_data' => 'required|string'
]);

if ($validator->fails()) {
    return redirect()->route('dataNotComplete');
}

The confusion is that this works, but it only works in order. Hence, if the JSON structure becomes flipped like this:

{
    "another_data": "Another data is here",
    "test_data": "Any data is here"
}

Validator will fails the test, even though the data is technically correct. How do I make the validator doesn't care about data ordering, or do another library exist for validating JSON specifically? I just want to validate the data of each params, not including the order of the data on the JSON Payload. Any thoughts or idea will be appreciated! Thank you!

P.S. I read from here that JSON order of parameters shouldn't matter, so that's that.

3
  • I don't think the order has an effect. I'm gonna guess that $request->all() is not an array. If it's not an array just convert it and it should work as expected. Commented Nov 9, 2022 at 13:02
  • Order doesn't make a difference at all. You can try Log::info($request->all()); and check the log in /storage/logs to see what Request contains. It should be an array. You can also try Log::info($validator->messages()->all()); to see what the errors are Commented Nov 9, 2022 at 13:04
  • stackoverflow.com/questions/44001030/… Commented Nov 9, 2022 at 13:05

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.