杂货店CRUD,分组

时间:2018-08-04 13:39:21

标签: php codeigniter grocery-crud

我已经使用杂货店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);
}

0 个答案:

没有答案