Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

shakogele's avatar

require_if other field contains some value

Hello,

I'm using Request to validate input, I want to make field required whether another field contains some value or not Im doing like this

        'services'        =>  'required|array',
        'packet'          =>  'required_if:services.*,in:internet_packet',

I want to make packet field required if services array contains 'internet_packet', but this does not work, I use Laravel 5.3. Any suggestions?

Thanks in Advance

0 likes
6 replies
Talinon's avatar

I would think it should?

$validator->sometimes('packet', 'required', function ($input) {
    return in_array('internet_packet', $input->services);
});
Procat's avatar

What field should trigger the validation on packet? If it's services, shouldn't it be:

'packet'          =>  'required_if:services,internet_packet',
shakogele's avatar
shakogele
OP
Best Answer
Level 8

Thanks a lot to you guys, the solution I did was as follows:

public function rules(){

        $rules = [
        ...
            'services' => 'required|array',
        ... 
    ];

    foreach($this->services as $service){
        if($service === 'internet_packet')){
            $rules['packet'] = 'required|integer';
        }

        if($service === 'another_value'){
            $rules['other_value'] = 'required|.....';
        }
        ...
    }

    return $rules;

}

Please or to participate in this conversation.