Anda bisa menulis aturan validator khusus. Aturannya bisa terlihat seperti ini:
'unique_multiple:table,field1,field2,field3,...,fieldN'
Kode untuk itu akan terlihat seperti ini:
Validator::extend('unique_multiple', function ($attribute, $value, $parameters)
{
// Get table name from first parameter
$table = array_shift($parameters);
// Build the query
$query = DB::table($table);
// Add the field conditions
foreach ($parameters as $i => $field)
$query->where($field, $value[$i]);
// Validation result will be false if any rows match the combination
return ($query->count() == 0);
});
Anda dapat menggunakan bidang sebanyak yang Anda suka untuk ketentuan tersebut, pastikan nilai yang diteruskan adalah larik yang berisi nilai bidang dalam urutan yang sama seperti yang dideklarasikan dalam aturan validasi. Jadi kode validator Anda akan terlihat seperti ini:
$validator = Validator::make(
// Validator data goes here
array(
'unique_fields' => array('examdate_value', 'batch_value', 'chapter_value')
),
// Validator rules go here
array(
'unique_fields' => 'unique_multiple:exams,examdate,batch,chapter'
)
);