我已经使用杂货店2个月了,而我刚刚发现了一个我不知道如何解决的问题。我想按日期排序数据,同时按状态分组。 我已经看到我可以使用where函数进行分组,但是我不希望任何特定的数据进行分组,而上次我试图添加某种where子句只是为了使其起作用,它只返回了我表中的2个条目。
在这里您可以看到数据排序工作正常,但是我无法按“状态显示”列进行分组,有什么想法吗? https://i.imgur.com/UMLtIcW.png
我的代码如下:
public function gerenciamentoManuts() {
$this->checkSession();
$crud = new grocery_CRUD();
$crud->set_subject('Manutenção');
$this->output->set_common_meta('Manutenções Beta Telecom', null, null);
$this->output->set_output_data('description', 'Gerenciamento de Manutenções');
$crud->set_language('pt-br.portuguese');
$crud->set_table('manutencoes');
$crud->unset_clone();
$crud->add_action('Agendar Manutenção Preventiva', base_url() . 'assets/grocery_crud/themes/flexigrid/css/images/add.png', 'Admin/proxManut');
$crud->columns('equip_id', 'users_id', 'equip_modelo', 'manut_dataUlt', 'manut_dataProx', 'manut_status');
$crud->fields('equip_id', 'equip_select', 'manut_dataUlt', 'manut_dataProx', 'manut_desc', 'manut_status');
$crud->set_rules('equip_select', 'Selecionar Equipamento', 'required');
$crud->set_rules('manut_dataProx', 'Próxima Manutenção ', 'required');
$crud->display_as('equip_id', 'Número de Série');
$crud->callback_before_insert(array($this, '_callback_filter_selection'));
$crud->callback_before_update(array($this, '_callback_filter_selection'));
$crud->display_as('equip_select', 'Equipamento para Manutenção');
$crud->display_as('users_id', 'Cliente');
$crud->callback_column('users_id', array($this, '_callback_Client_Name'));
$crud->display_as('equip_modelo', 'Modelo do equipamento');
$crud->callback_column('equip_modelo', array($this, '_callback_Equip_Modelo'));
$crud->display_as('manut_dataProx', 'Próxima Manutenção');
$crud->display_as('manut_dataUlt', 'Última Manutenção');
$crud->display_as('manut_status', 'Status da Manutenção');
$crud->display_as('manut_desc', 'Descrição da Manutenção Realizada');
$crud->field_type('manut_desc', 'text');
$crud->unset_texteditor('manut_desc', 'full_text');
$crud->order_by('manutencoes.manut_status,manutencoes.manut_dataProx');
//$crud->order_by('manut_status', 'asc');
if ($crud->getState() == 'add') {
$crud->field_type('equip_id', 'invisible');
$data = $this->db->query('Select e.equip_nserie,e.equip_id,u.users_name from users u, equipamentos e where e.users_id=u.users_id');
$dataset = array();
foreach ($data->result() as $row) {
$dataset[$row->equip_id] = 'Nº de Série: ' . $row->equip_nserie . ' - Cliente: ' . $row->users_name;
}
$crud->field_type('equip_select', 'dropdown', $dataset);
} elseif ($crud->getState() == 'edit') {
$primary_key = $crud->getStateInfo()->primary_key;
$query = $this->db->get_where('manutencoes', array('manut_id' => $primary_key));
$equipid = $query->row_array()['equip_id'];
$crud->field_type('equip_id', 'invisible');
$data = $this->db->query('Select e.equip_nserie,e.equip_id,u.users_name from users u, equipamentos e where e.users_id=u.users_id');
$dataset = array();
foreach ($data->result() as $row) {
$dataset[$row->equip_id] = 'Nº de Série: ' . $row->equip_nserie . ' - Cliente: ' . $row->users_name;
}
$crud->field_type('equip_select', 'dropdown', $dataset, $default_value = $equipid);
} else {
$crud->set_relation('equip_id', 'equipamentos', 'equip_nserie');
}
$crud->callback_read_field('equip_select', function ($value, $primary_key) {
$data = $this->db->query('Select u.users_name,e.equip_modelo,e.equip_tempoManut from users u, equipamentos e, manutencoes m where m.equip_id=e.equip_id and e.users_id=u.users_id and m.manut_id=' . $primary_key);
$infos = $data->row_array();
//$crud->display_as('equip_select','Cliente:');
return 'Cliente: ' . $infos['users_name'] . ' | Modelo do Equipamento: ' . $infos['equip_modelo'] . ' | Manutenção Preventiva a cada: ' . $infos['equip_tempoManut'] . ' meses';
});
$output = $crud->render();
$this->_example_output($output);
}