mad-dbentry-field
Input texto com autocomplete AJAX.
Input text com autocomplete AJAX do banco. O usuario digita livremente e recebe sugestoes — o valor NAO precisa vir da lista (diferente do dbunique-search).
Props
| Prop | Tipo | Default | Descricao |
|---|---|---|---|
| name | string | '' | Nome do campo (obrigatorio) |
| label | string | '' | Label do campo |
| model | string | '' | Classe do model Eloquent (obrigatorio) |
| database | string | MAIN_DATABASE | Conexao do banco |
| column | string | '' | Coluna a buscar e sugerir (obrigatorio) |
| query | Builder | null | Eloquent/Query Builder pronto (alternativa a model+filters) |
| filters | array | [] | [['campo','op','val'], ...] |
| min-length | int | 2 | Chars minimos para disparar busca |
| placeholder | string | '' | Placeholder |
| hint | string | '' | Texto de ajuda |
| error | string | '' | Mensagem de erro |
| required | bool | false | |
| disabled | bool | false | |
| readonly | bool | false | |
| maxlength | string | '' | Tamanho maximo |
| attrs | string | '' | Atributos HTML extras |
Uso basico
<mad-dbentry-field name="cidade" label="Cidade" model="Cidade" column="nome" />
Com filtros
<mad-dbentry-field name="bairro" label="Bairro" model="Endereco" column="bairro"
:filters="[['estado_id', '=', '1']]" min-length="3" />
Quando usar dbentry vs dbunique-search vs dbcombo
| Cenario | Usar |
|---|---|
| Texto livre com sugestoes (cidade, bairro, cargo) | <mad-dbentry-field> |
| Selecionar ID de um registro (FK) | <mad-dbunique-search-field> |
| Lista fixa que cabe no DOM | <mad-dbcombo-field> |
Diferenca fundamental
dbentry-field: retorna texto livre (o que o usuario digitou). Sugestoes sao conveniencia.dbunique-search-field: retorna ID do registro. Valor DEVE vir da lista.
NUNCA fazer
{{-- ERRADO: usar dbentry para selecionar FK --}}
<mad-dbentry-field name="cliente_id" model="Pessoa" column="nome" />
{{-- Retorna o nome digitado, nao o ID --}}
{{-- CERTO: usar dbunique-search para FK --}}
<mad-dbunique-search-field name="cliente_id" model="Pessoa" display="nome" />
{{-- ERRADO: usar input-field + autocomplete manual --}}
<mad-input-field name="cidade" label="Cidade" />
<script>/* logica manual de fetch */</script>
{{-- CERTO --}}
<mad-dbentry-field name="cidade" label="Cidade" model="Cidade" column="nome" />