---
name: "HTML::FormFu::Constraint::DBIC::Unique"
section: "3pm"
platform: "linux"
package: "libhtml-formfu-model-dbic-perl"
version: "2.03-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::FormFu::Constraint::DBIC::Unique"
---

# HTML::FormFu::Constraint::DBIC::Unique(3pm)

unique constraint for HTML::FormFu::Model::DBIC

## NAME

HTML::FormFu::Constraint::DBIC::Unique - unique constraint for HTML::FormFu::Model::DBIC

## VERSION

version 2.03

## SYNOPSIS

```
    $form->stash->{schema} = $dbic_schema; # DBIC schema
    $form->element('text')
         ->name('email')
         ->constraint('DBIC::Unique')
         ->resultset('User')
         ;
    $form->stash->{context} = $c; # Catalyst context
    $form->element('text')
         ->name('email')
         ->constraint('DBIC::Unique')
         ->model('DBIC::User')
         ;
    $form->element('text')
         ->name('user')
         ->constraint('DBIC::Unique')
         ->model('DBIC')
         ->resultset('User')
         ;
    or in a config file:
    ---
    elements:
      - type: text
        name: email
        constraints:
          - Required
          - type: DBIC::Unique
            model: DBIC::User
      - type: text
        name: user
        constraints:
          - Required
          - type: DBIC::Unique
            model: DBIC::User
            column: username
```

## DESCRIPTION

Checks if the input value exists in a DBIC ResultSet.

## METHODS

### model

Arguments: `$string` # a Catalyst model name like 'DBIC::User'

### resultset

Arguments: `$string` # a DBIC resultset name like 'User'

### self\_stash\_key

reference to a key in the form stash. if this key exists, the constraint will check if the id matches the one of this element, so that you can use your own name.

### id\_field

Use this key to define reference field which consist of primary key of resultset. If the field exists (and `$self_stash_key` not defined), the constraint will check if the id matches the primary key of row object:

```
    ---
    elements:
      - type:  Hidden
        name:  id
        constraints:
          - Required
      - type:  Text
        name:  value
        label: Value
        constraints:
          - Required
          - type:       DBIC::Unique
            resultset:  ControlledVocab
            id_field:   id
```

### others

Use this key to manage unique compound database keys which consist of more than one column. For example, if a database key consists of 'category' and 'value', use a config file such as this:

```
    ---
    elements:
      - type:  Text
        name:  category
        label: Category
        constraints:
          - Required
      - type:  Text
        name:  value
        label: Value
        constraints:
          - Required
          - type:       DBIC::Unique
            resultset:  ControlledVocab
            others:     category
```

### method\_name

Name of a method which will be called on the resultset. The method is passed two argument; the value of the field, and the primary key value (usually \`id\`) of the record in the form stash (as defined by self\_stash\_key). An example config might be:

```
    ---
    elements:
      - type: text
        name: user
        constraints:
          - Required
          - type: DBIC::Unique
            model: DBIC::User
            method_name: is_username_available
```

### SEE ALSO

Is a sub-class of, and inherits methods from HTML::FormFu::Constraint

HTML::FormFu::FormFu

## AUTHOR

Jonas Alves `"jgda@cpan.org"`

## LICENSE

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
