AM
Ordenação e Filtro de buscas por campos associados
Fechado
Na minha listagem existe um campo que vem de uma associação, na listagem estou conseguindo exibir o nome do campo ao invez do ID, porem no filtro de busca e na ordenação esta dando erro!
Campo da listagem:
Busca:
Ordenação:
Apenas a listagem esta funcionando! a ordenação e a busca não estão!
Campo da listagem:
- <?php
- $column_id_tipo_navio = new TDataGridColumn('tipo_navio->desc_t_navio', 'Tipo do Navio', 'right');
- ?>
Busca:
- <?php
- if (isset($data->id_tipo_navio) AND ($data->id_tipo_navio)) {
- $filter = new TFilter('tipo_navio->desc_t_navio', 'like', "%{$data->id_tipo_navio}%"); // create the filter
- TSession::setValue('NavioList_filter_id_tipo_navio', $filter); // stores the filter in the session
- }
- ?>
Ordenação:
- <?php
- $order_id_tipo_navio = new TAction(array($this, 'onReload'));
- $order_id_tipo_navio->setParameter('order', 'tipo_navio->desc_t_navio');
- $column_id_tipo_navio->setAction($order_id_tipo_navio);
- ?>
Apenas a listagem esta funcionando! a ordenação e a busca não estão!
Olá Augusto. Veja esse exemplo no Tutor, é exatamente que vc deve fazer. Veja que na função onSearch tem uma linha assim:
que filtra os dados que estão em uma tabela associada que nesse exemplo é City. Siga o exemplo que vc consegue. Espero ter ajudado.
www.adianti.com.br/framework_files/tutor/index.php?class=CustomerDat
A ordenação não vai de jeito nenhum!
O filtro funcionou? A ordenação vc tem que seguir a mesma lógica do filtro , veja no exemplo Tutor essas linhas abaixo de como ele ordena a coluna da tabela associada.
Entendi! eu achei que ele implementava alguma coisa para não precisar recorrer a essa gambiarra, tendo em vista que na listagem bastou chamar tipo_navio->desc_t_navio que funcionou!