Combo não exibe no me do Estado

16/12/2014

0

PHP

Olá. Através do bake, criei um formulário para incluir um Município. Entretanto, o bake ao gerar o formulário, exibe o id do estado e não o nome dele. Como faço para que na como apareça o nome e não o id do Estado? Se possível, gostaria de alterar a label de Uf para Estado e de nom municipio para município.
<div class="municipios form">
<?php echo $this->Form->create('Município'); ?>
	<fieldset>
		<legend><?php echo __('Incluir Município'); ?></legend>
	<?php
		echo $this->Form->input('uf_id');
		echo $this->Form->input('nom_municipio');
	?>
	</fieldset>
<?php echo $this->Form->end(__('Enviar')); ?>
</div>


Script para a criação das tabelas Ufs e Municipios:
DROP TABLE IF EXISTS `ufs`;
CREATE TABLE IF NOT EXISTS `ufs` (
  `id` int(10) unsigned NOT NULL COMMENT 'codigo fornecido pelo IBFE',
  `nom_estado` varchar(40) DEFAULT NULL COMMENT 'nome do estado',
  `sigla` varchar(2) DEFAULT NULL COMMENT 'sigla do estado'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=0;


DROP TABLE IF EXISTS `municipios`;
CREATE TABLE IF NOT EXISTS `municipios` (
  `id` varchar(7) NOT NULL COMMENT 'codigo do municipio fornecido pelo IBGE',
  `uf_id` int(10) unsigned NOT NULL,
  `nom_municipio` varchar(50) NOT NULL COMMENT 'nome do municipio'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=0;


Tela exibida:
Sergio Rocha

Sergio Rocha

Responder

Posts

26/12/2014

Sergio Rocha

Resposta enviada por Paulo Rodrigues - BH/MG

O nome do label você pode incluir no segundo parâmetro, assim:
echo $this->Form->input('uf_id', array('label' => 'Estado'));
echo $this->Form->input('nom_municipio', array('label' => 'Município'));

E para o nome do estado, no seu model Uf é possível definir o atributo displayField que é o seu campo de exibição padrão:
class Uf extends AppModel {
public $displayField = 'nom_estado';
}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar