加入后使用限制

时间:2017-07-19 10:21:44

标签: php codeigniter pagination

我在codeigniter 3中遇到分页问题。我必须在加入后使用$ this-> db->限制和2在哪里。我在这里发布我的代码......

模型

  public function fetch_matching_candidati_by_posizione($limit, $start, $event_id, $id_competenza)
  {
    $this->db->select('*');
    $this->db->from('matching_candidati');
    $this->db->join('competenze_candidato', 'competenze_candidato.id_candidato = matching_candidati.id_candidato');
    $this->db->where('competenze_candidato.id_competenza', $id_competenza);
    $this->db->where('matching_candidati.event_id', $event_id);  
    $this->db->limit($limit, $start);

    $query = $this->db->get();

    if($query->num_rows() > 0)
    {
      return $query->result();
    }else {
      return false;
    }
  }

控制器

public function cerca_candidati_per_posizione()
{
    if($this->getUtente()->isAdmin())
    {    
        $event_id = $this->uri->segment(6);
        $event_anno = $this->uri->segment(3);
        $event_url = $this->uri->segment(4);
        $id_competenza = trim($this->input->post('posizione_digital_job_id'));

        $this->load->model('matching_candidati_model');
        $matching_candidati_model = new matching_candidati_model();
        $this->load->model('matching_competenze_model');
        $matching_competenze_model = new matching_competenze_model();                

        $config = array();
        $config["base_url"] = base_url() . "amministratore/eventi/".$event_anno."/".$event_url."/matching/".$event_id."/candidati_posizioni_aperte/cerca_candidati_per_posizione";

        if($id_competenza == "Altro"){
            $config["total_rows"] = $matching_candidati_model->record_count_by_id_posizione_altro($event_id);
        }else{
            $config["total_rows"] = $matching_candidati_model->record_count_by_id_posizione($event_id, $id_competenza);
        }

        $config["per_page"] = 50;
        $config["uri_segment"] = 9;
        $config['num_links'] = 2;

        $config['full_tag_open'] = '<div class="pagination"><ul>';
        $config['full_tag_close'] = '</ul></div><!--pagination-->';

        $config['first_link'] = '&laquo; First';
        $config['first_tag_open'] = '<li class="prev page">';
        $config['first_tag_close'] = '</li>';

        $config['last_link'] = 'Last &raquo;';
        $config['last_tag_open'] = '<li class="next page">';
        $config['last_tag_close'] = '</li>';

        $config['next_link'] = 'Next &rarr;';
        $config['next_tag_open'] = '<li class="next page">';
        $config['next_tag_close'] = '</li>';

        $config['prev_link'] = '&larr; Previous';
        $config['prev_tag_open'] = '<li class="prev page">';
        $config['prev_tag_close'] = '</li>';

        $config['cur_tag_open'] = '<li class="active"><a href="">';
        $config['cur_tag_close'] = '</a></li>';

        $config['num_tag_open'] = '<li class="page">';
        $config['num_tag_close'] = '</li>';

        $this->pagination->initialize($config);

        $page = ($this->uri->segment(9)) ? $this->uri->segment(9) : 0;

        if($id_competenza == "Altro"){
            $data_pass["candidati"] = $matching_candidati_model->fetch_matching_candidati_by_posizione_altro($config["per_page"], $page, $event_id);
            $data_pass['numero_candidati'] = $matching_candidati_model->record_count_by_id_posizione_altro($event_id);
        }else{
            $data_pass["candidati"] = $matching_candidati_model->fetch_matching_candidati_by_posizione($config["per_page"], $page, $event_id, $id_competenza);
            $data_pass['numero_candidati'] = $matching_candidati_model->record_count_by_id_posizione($event_id, $id_competenza);
        }

        $data_pass["links"] = $this->pagination->create_links();
        $data_pass['event_id'] = $event_id;
        $data_pass['event_anno'] = $event_anno;
        $data_pass['event_url'] = $event_url;
        $data_pass['competenze'] = $matching_competenze_model->get_all_competenze_default();         

        $data_header=array('title'=>'Master Club - Home Amministratore',
            'css'=>array('bootstrap.css', 'bootstrap-responsive.css'),
            'js'=>array('jquery.js', 'bootstrap.js', 'bootstrap.min.js',
            'bootstrap-dropdown.js', 'bootstrap-button.js', 'bootstrap-alert.js',
            'bootstrap-collapse.js', 'bootstrap-tooltip.js', 'bootstrap-transition.js', 'bootstrap-tab.js'));
        $breadcrumps=array(
            '0'=>'Home',
            '1'=>'Amministratore',
            '2'=>'Eventi',
            '3'=>$event_anno,
            '4'=>$event_url,
            '5'=>'Candidati job matching'
        );
        $data_header['breadcrumps']=$breadcrumps;
        $url_breadcrumps=array(
            '0'=>'amministratore/login',
            '1'=>'amministratore/home',
            '2'=>'amministratore/eventi',
            '3'=>'amministratore/eventi/'.$event_anno,
            '4'=>'amministratore/eventi/'.$event_anno.'/'.$event_url,
            '5'=>'amministratore/eventi/'.$event_anno.'/'.$event_url.'/matching/'.$event_id.'/candidati_posizioni_aperte'
        );
        $data_header['url_breadcrumps']=$url_breadcrumps;

        $data_footer['filtri'] = true;

        $this->load->view('header', $data_header);
        $this->load->view('amministratore/matching/matching/candidati_posizioni_aperte', $data_pass);
        $this->load->view('footer', $data_footer);

    }
    else
    {
        show_error('Accesso negato', 403);
    }
}

不幸的是,它不起作用。有人能帮我吗? 如果我打开列表的第2页,则不显示任何内容......

1 个答案:

答案 0 :(得分:0)

不确定这是否有所不同但是删除了您的“来自”并将您的获取更改为$this->db->get('matching_candidati')->result();

哟不需要你的检查,因为

if($query->num_rows() > 0)
{
    return $query->result();
}else {
  return false;
}

假设您要检查查询是否返回false,这是重复的。如果你只检查一般的查询结果集,如果有结果你会得到,如果是空的则会得到假

所以在你看来会是:

if(candidati){

  //rest of your view action
}