Required_if laravel with multiple value
Solution 1
EDIT: As pointed out by LePhleg answer, there is a nicest syntax for this validation:
$rule = array(
'selection' => 'required',
'stext' => 'required_if:selection,2,3,
);
Old answer below:
I think that the require_if validation accept only one value per time. Try to change your validation code as below:
$rule = array(
'selection' => 'required',
'stext' => 'required_if:selection,2|required_if:selection,3',
);
EDIT: Check LePhleg answer, is more cleaner. At the time of the answer that was not possible, just check the question, he was using the same method but not worked.
Solution 2
You just have to pass all the values as parameters separated by comma:
$rules = array(
'selection' => 'required',
'stext' => 'required_if:selection,2,3'
);
Solution 3
try this one
if single match value then used like that
'stext' => 'required_if:selection,2'
if you have multiple value then used like that (separated by comma)
'stext' => 'required_if:selection,2,3'
for more information see documentation required_if
Solution 4
You can go ahead with sometimes validation for laravel. you can define a custom closure as in the below example
public static myfunction(){
$input = \Input::only('selection','stext');
$rule = array(
'selection' => 'required'
);
$validate = \Validator::make($input,$rule);
$validator->sometimes('stext', 'required', function($input){
return (($input->selection == 1) || ($input->selection == 2));
});
}
Donny Akhmad Septa Utama
Updated on July 09, 2022Comments
-
Donny Akhmad Septa Utama almost 2 years
I have a dropdown menu like this:
<select name="selection"> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> </select> <input type="text" name="stext">
I want the following in laravel:
public static myfunction(){ $input = \Input::only('selection','stext'); $rule = array( 'selection' => 'required', 'stext' => 'required_if:selection,2,3', ); $validate = \Validator::make($input,$rule); }
But if I select option 1,
stext
is still required. Why? How can I fix it? -
Donny Akhmad Septa Utama about 8 yearsthank you for your answer sir. but i want to make it so simple i can. because im not expert in laravel. thanks again. :-)
-
kjdion84 over 6 yearsNope. See @LePhleg answer. Way cleaner and proper.