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
Interessante isso. Podia colocar um exemplo de como especifico ao $form->input para ser um select ao invés de um input?
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