I’m trying to expose the SQL statements that GroceryCrud execute to debug a problem.
Maybe It’s a dumb question, but I can’t exply why a filter where is not working as expected. In associado(), the statement $crud->where (‘ativo’, 1); is working, filtering the active associates. But in the second class - associadosArquivados(), the statement $crudInativo->where (‘ativo’, 0); is returning the same output as the first. I already remove all the customizations and filterings and the problem occour always
class Associado extends BaseController
{
public function associados()
{
$titulo = 'Associados';
$crud = $this->_getGroceryCrudEnterprise();
$crud->setCsrfTokenName(csrf_token());
$crud->setCsrfTokenValue(csrf_hash());
$crud->setTable('cad_associados');
$crud->setSubject('Associado', 'Associados');
$associadosArquivados = site_url('admin/associadosarquivados');
$crud->setDatagridButton('Arquivados', 'plus', $associadosArquivados, false, 'top-left');
$crud->setPrimaryKey('id', 'cad_associados');
$crud->setRelation('cargo', 'assoc_x_cargos', 'cargo');
$crud->setRelation('sexo', 'assoc_x_sexo', 'sexo');
$crud->setRelation('situacao', 'assoc_x_status', 'status');
$crud->setRelation('operadora', 'assoc_x_operadoras', 'nome');
$crud->setRelation('estado_civil', 'assoc_x_estadoCivil', 'estadoCivil');
$crud->where('ativo', 1);
// Altera o nome de exibição das colunas (tanto na grade quanto nos formulários)
$crud->displayAs([
'data_nascimento' => 'Data de Nascimento',
'naturalidade' => 'Naturalidade',
'rg' => 'RG',
'cpf' => 'CPF',
'endereco' => 'Endereço',
'numero' => 'Número',
'bairro' => 'Bairro',
'cidade' => 'Cidade',
'cep' => 'CEP',
'complemento' => 'Complemento',
'banco' => 'Banco',
'agencia' => 'Agência',
'conta' => 'Conta',
'tratamento' => 'Tratamento',
'nome' => 'Nome',
'sexo' => 'Sexo',
'situacao' => 'Situação',
'estado_civil' => 'Estado Civil',
'conjuge' => 'Nome do Cônjuge',
'filiacao_pai' => 'Nome do Pai',
'filiacao_mae' => 'Nome da Mãe',
'email1' => 'E-mail Principal',
'email2' => 'E-mail Secundário',
'fone1' => 'Telefone Principal',
'fone2' => 'Telefone Secundário',
'celular' => 'Celular',
'operadora' => 'Operadora',
'estado_atuacao' => 'Estado Atuação',
'cidade_atuacao' => 'Cidade Atuação',
'possemagistratura' => 'Posse Magistratura',
'ambanamatra' => 'AMB / ANAMATRA',
'uf' => 'UF',
'obs' =>'Observação',
'opccontato' => 'Opção Contato'
]);
$crud->unsetSearchColumns(['ativo','obs']);
// Formata a exibição da coluna 'ativo'
$crud->callbackColumn('ativo', function ($value, $row) {
return $value == 1 ? '<span class="badge bg-success">ATIVO</span>' : '<span class="badge bg-danger">inativo</span>';
});
//Colunas para esconder no datagrid
$crud->unsetColumns([
'banco',
'agencia',
'conta',
'filiacao_pai',
'filiacao_mae',
]);
// Remove o botão "Excluir" da lista principal
$crud->unsetDelete();
// Remove os checkboxes de seleção de linha (ações em massa)
//$crud->unsetBulkActions();
//Agrupamento de colunas
$crud->groupFields("Identificação", ['tratamento' , 'nome', 'sexo', 'situacao', 'data_nascimento', 'naturalidade', 'rg', 'cpf']);
$crud->groupFields("Filiação / Cônjuge", ['estado_civil', 'conjuge', 'filiacao_pai', 'filiacao_mae']);
$crud->groupFields("Endereço", ['endereco', 'numero', 'bairro', 'cidade','uf', 'complemento','cep']);
$crud->groupFields("Dados Associativos", ['cidade_atuacao', 'estado_atuacao', 'banco', 'agencia','conta', 'ativo']);
$crud->groupFields("Contato", ['email1','email2', 'fone1', 'fone2', 'celular', 'operadora']);
$crud->groupFields("Observação", ['obs']);
$output = $crud->render();
return $this->_associado_output($titulo, $output);
}
public function associadosArquivados()
{
$associados = site_url('admin/associados');
$titulo = 'Associados Arquivados';
$crudInativo = $this->_getGroceryCrudEnterprise();
$crudInativo->setCsrfTokenName(csrf_token());
$crudInativo->setCsrfTokenValue(csrf_hash());
$crudInativo->setTable('cad_associados');
$crudInativo->setSubject('Associado', 'Associados');
$crudInativo->setDatagridButton('Associados', 'plus', $associados, false, 'top-left');
// $crudInativo->setPrimaryKey('id', 'cad_associados');
// $crudInativo->setRelation('cargo', 'assoc_x_cargos', 'cargo');
// $crudInativo->setRelation('sexo', 'assoc_x_sexo', 'sexo');
// $crudInativo->setRelation('situacao', 'assoc_x_status', 'status');
// $crudInativo->setRelation('operadora', 'assoc_x_operadoras', 'nome');
// $crudInativo->setRelation('estado_civil', 'assoc_x_estadoCivil', 'estadoCivil');
$crudInativo->where('ativo', 0);
$crudInativo->unsetSearchColumns(['obs']);
// Formata a exibição da coluna 'ativo'
// $crudInativo->callbackColumn('ativo', function ($value, $row) {
// return $value == 1 ? '<span class="badge bg-success">ATIVO</span>' : '<span class="badge bg-danger">inativo</span>';
// });
//Colunas para esconder no datagrid
$crudInativo->unsetColumns([
'banco',
'agencia',
'conta',
'filiacao_pai',
'filiacao_mae',
'naturalidade',
'endereco',
'numero',
'bairro',
'cidade',
'cep',
'complemento',
'tratamento',
'situacao',
'estado_civil',
'conjuge',
'email1',
'email2',
'fone1',
'fone2',
'celular',
'operadora',
'possemagistratura',
'uf',
'opcaocontato',
]);
// Remove o botão "Excluir" da lista principal
$crudInativo->unsetDelete();
// Remove os checkboxes de seleção de linha (ações em massa)
//$crudInativo->unsetBulkActions();
$output = $crudInativo->render();
return $this->_associado_output($titulo, $output);
}
private function _associado_output($titulo, $output = null) {
if (isset($output->isJSONResponse) && $output->isJSONResponse) {
header('Content-Type: application/json; charset=utf-8');
echo $output->output;
exit;
}
// Cria o array com todas as variáveis para a view
$data['title'] = $titulo;
$data['output'] = $output->output;
$data['css_files'] = $output->css_files;
$data['js_files'] = $output->js_files;
return view('partials/admin/associados', $data);
}
private function _getDbData() {
$db = (new ConfigDatabase())->default;
return [
'adapter' => [
'driver' => 'Pdo_Mysql',
'host' => $db['hostname'],
'database' => $db['database'],
'username' => $db['username'],
'password' => $db['password'],
'charset' => 'utf8'
]
];
}
private function _getGroceryCrudEnterprise($bootstrap = true, $jquery = true) {
$db = $this->_getDbData();
$config = (new ConfigGroceryCrud())->getDefaultConfig();
$groceryCrud = new GroceryCrud($config, $db);
return $groceryCrud;
}
}