sql >> Database >  >> RDS >> Mysql

Hoe een gecombineerde validatieregel voor unieke velden toe te voegen in Laravel 4

U kunt een aangepaste validatorregel schrijven. De regel kan er ongeveer zo uitzien:

'unique_multiple:table,field1,field2,field3,...,fieldN'

De code daarvoor ziet er ongeveer zo uit:

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);
});

U kunt zoveel velden gebruiken als u wilt voor de voorwaarde, maar zorg ervoor dat de doorgegeven waarde een array is met de waarden van de velden in dezelfde volgorde als aangegeven in de validatieregel. Uw validatorcode ziet er dus ongeveer zo uit:

$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'
    )
);


  1. Wat betekent de volgende Oracle-fout:ongeldige kolomindex

  2. Hoe de id-kolom opnieuw bij te werken vanaf 1

  3. Eén record verwijderen uit Entity Framework?

  4. IO.FileNotFoundException in MySql.Data.dll:kan System.Security.Permissions niet laden