Skip to content

Criando a option inicial em um campo select

Já faz algum tempo eu vinha tendo uma dúvida quanto ao uso do helper $form do CakePHP para a criação de selects em meus formulários.

Normalmente eu coloco um option value=”0″ (ou value=”" VAZIO MESMO) e algo do tipo “Selecione:” escrito entre <option></option> e não conseguia de forma alguma descobrir como criar esse option inicial no CakePHP. Sofri um bucado no início para  descobrir como fazer algo simples.

A primeira solução que encontrei quando fiz meu primeiro projeto com CakePHP, em meados de 2007, foi incluir na view onde teria o formulário a linha:

$html->tags['selectempty'] = '<option value="">Selecione...</option>';

Usei muito essa solução embora não gostasse dela.

Já faz alguns meses que uso outro método, bem mais apropriado, usando o próprio $form->input. Veja:

echo $form->input('contact_list_id',  array('options'=>$contactLists,
                                            'empty' => 'Selecione:'));

O ‘empty’ é uma option do array de opções do $form->input que cria justamente o campo default que normalmente uso em meus selects.

É bom notar que existe inclusive uma option chamada default. Isso pode gerar algumas dúvidas (gerou pra mim de início). A option ‘default’ serve para pré-selecionar algum item de um select, tornando ele o valor default.

Fica aqui a dica!

{ 2 } Comments

  1. Sandro | 29 de outubro de 2009 at 03:10 | Permalink

    Interessante isso. Podia colocar um exemplo de como especifico ao $form->input para ser um select ao invés de um input?

  2. Rodrigo Guimarães | 29 de outubro de 2009 at 03:37 | Permalink

    Sandro, quando você envia um array como parâmetro para o $form->input ele reconhece automaticamente que deve ser tratado como um select. É simples e prático.

Post a Comment

Your email is never published nor shared. Required fields are marked *