docs
docs copied to clipboard
rex_form - auf unique validieren
Aus Slack via @gharlan. Kannst du die Notation für rex_sql_table
noch liefern?
Beispiel (rex_form):
$form->addErrorMessage(REX_FORM_ERROR_VIOLATE_UNIQUE_KEY, rex_i18n::msg('media_manager_error_type_name_not_unique'));
Voraussetzung: unique key (SQL):
ALTER TABLE `rex_dsgvo_client` ADD UNIQUE `unique_index`(`domain`, `lang`, `keyword`);
Als ALTER
-Query:
rex_sql_table::get(rex::table('my_table'))
->addIndex(new rex_sql_index('unique_key_name', ['domain', 'lang', 'keyword'], rex_sql_index::UNIQUE))
->alter();
Wobei ich es in der Regel stattdessen in den Gesamt-ensure
-Ausdruck einbetten würde:
rex_sql_table::get(rex::table('my_table'))
->ensureColumn(...)
->ensureColumn(...)
...
->ensureIndex(new rex_sql_index('unique_key_name', ['domain', 'lang', 'keyword'], rex_sql_index::UNIQUE))
->ensure();
Wichtig ist auch noch, dass die Felder dann varchar() sein müssen und nicht text.