Aqui está a matriz:
<input name="gallery[0][file]" value="file"> // could be empty or zip or image file
<input name="gallery[0][main]" value="false"> // one of main must be true
<input name="gallery[1][file]" value="file"> // could be empty or zip or image file
<input name="gallery[1][main]" value="true"> // one of main must be true
<input name="gallery[2][file]" value="file"> // could be empty or zip or image file
<input name="gallery[2][main]" value="false"> // one of main must be true
Quero ter certeza de que uma das entradas "principais" é verdadeira na lista.
Como posso fazer isso? Aqui estão minhas regras atuais
return [
'gallery' => 'required|array',
'gallery.*.file' => 'required|max:30000',
'gallery.*.main' => 'required|in:true,false',
];
Pode tentar o fechamento para validação personalizada
public function rules()
{
return [
'gallery' => ['required', 'array'],
'gallery.*.file' => ['required', 'max:30000'],
'gallery.*.main' => [
'required',
function($attribute, $value, $fail) {
$count = 0;
foreach(request()['gallery'] as $item) {
if(in_array($item['main'], [1, '1', true, 'true'], true)) {
$count++;
}
}
if($count === 0) {
$fail('At least one main must be true');
}
}
];
}
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras