sql >> Databáze >  >> RDS >> Mysql

Jak přidat kombinované pravidlo validátoru jedinečných polí v Laravel 4

Můžete napsat vlastní pravidlo validátoru. Pravidlo by mohlo vypadat nějak takto:

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

Kód pro to by vypadal asi takto:

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

Pro podmínku můžete použít libovolný počet polí, jen se ujistěte, že předávaná hodnota je pole obsahující hodnoty polí ve stejném pořadí, jak je deklarováno v ověřovacím pravidle. Takže váš kód validátoru by vypadal nějak takto:

$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. Spusťte všechny soubory SQL v adresáři

  2. Jaký je nejrychlejší způsob dotazování tabulky MySQL na nové řádky?

  3. Kritéria hibernace pro data

  4. Emulujte klauzuli MySQL LIMIT v Microsoft SQL Server 2000