आप एक कस्टम सत्यापनकर्ता नियम लिख सकते हैं। नियम कुछ इस तरह दिख सकता है:
'unique_multiple:table,field1,field2,field3,...,fieldN'
उसके लिए कोड कुछ इस तरह दिखेगा:
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);
});
आप शर्त के लिए जितने चाहें उतने फ़ील्ड का उपयोग कर सकते हैं, बस सुनिश्चित करें कि पास किया गया मान एक सरणी है जिसमें फ़ील्ड के मान उसी क्रम में हैं जैसा कि सत्यापन नियम में घोषित किया गया है। तो आपका सत्यापनकर्ता कोड कुछ इस तरह दिखेगा:
$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'
)
);