Arquivo

Textos com Etiquetas ‘cakePHP’

Exibir colunas concatenadas em um combobox, usando o cakePHP

31, março, 2009

Estou desenvolvendo uma aplicação no cakePHP, onde me deparei com a necessidade de exibir duas colunas do banco de dados concatenadas dentro de um único combobox (ou selectbox se preferirem).

Resolvi da seguinte forma:

$categorias = $this->Categoria->find('all', array(
    'fields' => array(
     'Categoria.id',
     'CONCAT(Categoria.id,\' -\',Categoria.nome) as nome'),
    'recursive' => 1));
 
$newCategs = Set::combine($categorias, '{n}.Categoria.id', '{n}.0.nome');
$this->set('categs', $newCategs);

Como podem ver, apenas utilizei a função CONCAT nativa do próprio banco, como um valor do parâmetro fields do método find(’all). Após isso, passei o resultado como parâmetro da função Set::combine do cake para que meu array fosse reestruturado de forma que fosse mostrado no combo de forma correta.

Após realizar a consulta, utilizei o form helper na minha view para exibir o combobox:

    echo $form->select('categoria_id',$categs);

Espero que isto possa ajudar.

Abraços

PHP, cakePHP , , , , , ,