2013-05-09 2 views
0

Теперь я пытаюсь использовать Pagination в своем веб-приложении, но это не работает. Когда я нажимаю ссылки, созданные $this->pagination->create_links(), я получаю ошибку 404 страницы.CodeIgniter - разбиение на страницы не работает

Вот мой контроллер:

function index($id) { 

    $this->load->library('pagination'); 

    if($project = $this->projects_model->get($id)) { 
     $temp = $this->project_logs_model->get_by('project_id', $project->id); 

     //$config = array(); 
     //$config['base_url'] = base_url().'projects/'.$project->id.'/'; 
     $config['base_url'] = current_url(); 
     $config['total_rows'] = $temp->num_rows(); 
     $config['uri_segment'] = 3; 
     $config['per_page'] = 5; 
     $config['first_link'] = 'Latest'; 
     $config['last_link'] = 'Oldest'; 
     $config["num_links"] = 2; 
     //$config['use_page_numbers'] = TRUE; 
     $this->pagination->initialize($config); 

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

     $this->check_access($project); 

     $this->data->current_project = $project; 
     $this->data->updates = $this->project_logs_model->get_by('project_id', $project->id, $config['per_page'], $page); 
     $this->data->links = $this->pagination->create_links(); 

     $this->view('project-main', $this->data); 
    } else { 
     show_404(); 
    } 
} 

The $id передается индекс используется для определения того, какой проект для просмотра, а также используется для просмотра project_logs для этого проекта, так что я действительно не могу удалить. Это означает, что если я использую разбиение на страницы, номер страницы будет вторым параметром.

ответ

0

, если вы планируете использовать номер страницы с вашего URL, вы должны сделать somenthing так:

function index($id) { 

     $this->load->library('pagination'); 
     $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; 
     $project = $this->projects_model->get($id);  
    if(count($project) > 0) { 
      $temp = $this->project_logs_model->get_by('project_id', $project->id); 

      //$config = array(); 
      $config['base_url'] = base_url().'projects/'.$project->id.'/'.$page; 
      // $config['base_url'] = current_url(); 
      $config['total_rows'] = $temp->num_rows(); 
      $config['uri_segment'] = 3; 
      $config['per_page'] = 5; 
      $config['first_link'] = 'Latest'; 
      $config['last_link'] = 'Oldest'; 
      $config["num_links"] = 2; 
      //$config['use_page_numbers'] = TRUE; 
      $this->pagination->initialize($config); 

      $this->check_access($project); 

      $this->data->current_project = $project; 
      $this->data->updates = $this->project_logs_model->get_by('project_id', $project->id, $config['per_page'], $page); 
      $this->data->links = $this->pagination->create_links(); 

      $this->view('project-main', $this->data); 
     } else { 
      show_404(); 
     } 

} 

, но я не совсем уверен, о вашей логике, я использую другую логику, и я использую смещение в URLs

попробовать этот учебник я думаю, что это хорошая отправная точка: http://net.tutsplus.com/tutorials/php/codeigniter-from-scratch-day-7-pagination/

+0

это еще не будет работать. как вы, кстати, используете смещение в URL-адресах в разбивке на страницы? –

+0

@RemuDesu попробовать http://net.tutsplus.com/tutorials/php/codeigniter-from-scratch-day-7-pagination/ – sbaaaang

Смежные вопросы