当我点击分页的下一页时,它会在codeigniter中出现404错误

时间:2015-06-22 09:47:39

标签: php codeigniter pagination

在我的News.php控制器中,我有以下代码:

 public function index()
{
    $data['title'] = 'Database Details';

    $config     =   array();
    $config['base_url'] =   base_url("news/index");
    $config['total_rows'] = $this->news_model->record_count();
    $config['per_page']     =   5;
    $config['uri_segment'] = 3;
    //$config['use_page_numbers'] = TRUE;
 // $config['page_query_string'] = TRUE;

    $choice  =  $config["total_rows"] / $config["per_page"];
    $config["num_links"] =  round($choice);

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

    $page   = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
    //echo "page--".$page;
    $data['user_data']  = $this->news_model->get_details($config['per_page'],$page);
    $data['links']          =  $this->pagination->create_links();

    $this->load->view('templates/header');   
    echo $this->db->last_query();       

    $this->load->view('news/index', $data);   

    $this->load->view('templates/footer');
}

在我的News_Model.php模型中,以下代码存在:

 public function get_details($limit,$start)
{    
    //echo "Limit---".$limit."</br>";
    //echo "Start---".$start."</br>";
      $this->db->limit($limit,$start);
      $query = $this->db->get('user_data'); 
      return $query->result_array();    

 }

我的观看文件index.php显示:

 <h3>
   <?php echo $title; ?>
 </h3>
 <table>
    <thead>
      <th>Name</th>
      <th>Address</th>
      <th>Email</th>
       <th>Mobile</th>
    </thead>
   <tbody>
   <?php
       //print_r($user_data);
     foreach ($user_data as $user_item): 
   ?>
   <tr>

      <td><?php echo $user_item["user_name"];?></td>
     <td><?php echo $user_item["address"];?></td>
     <td><?php echo $user_item["email"];?></td>
     <td><?php echo $user_item["mobile"];?></td>
     <td><a href="edit?id=<?php echo $user_item["id"];?>">Edit</a></td>
     <td><a href="delete?id=<?php echo $user_item["id"];?>">Delete</a></td>
   </tr>
<?php endforeach ?>

 </tbody>
 </table>
 <p class="pagination"><?php echo $links; ?></p>

在我的config.php

 <?php
      $config['base_url'] = 'http://localhost/CodeIgniter-3.0.0/';
      $config['index_page'] = 'index.php';
 ?>

如果我删除$ config [&#39; index_page&#39;] =&#39;&#39 ;;我的其他页面没有显示。

在我的route.php

  <?php
    $route['news/(:any)'] = 'news/index/$1'; //explain what does it actually means?
    $route['news'] = 'news';
    $route['default_controller'] = 'news/create';
    $route['(:any)'] ='pages/view/$1';

 ?>

上面的代码显示如下:

enter image description here

但是当我点击page 2时,它显示为: enter image description here

请不要建议Link1Link2Link3。我已经看到了上述链接,但不知道如何获取它:(

请指导我!!

2 个答案:

答案 0 :(得分:2)

在config.php中

$config['base_url'] = '';
$config['index_page'] = '';
路由器中的

$route['news/(:any)'] = 'news/$1';
$route['news'] = 'news';
$route['default_controller'] = 'news/create';
$route['(:any)'] ='pages/view/$1';

并放置.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

编辑01

<?php

    $data['title'] = 'Database Details';

    $count = $this->news_model->record_count()

    $config['base_url'] =   base_url(). 'index.php/news/index';
    $config['total_rows'] = $count;
    $config['per_page']     =   5;
    $config['uri_segment'] = 3;
    $limit = $config['per_page'];

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

    $page   = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
    $data['user_data']  = $this->news_model->get_details($limit,$page);
    $data['links']    =  $this->pagination->create_links();


    $this->load->view('templates/header');   
    $this->load->view('news/index', $data);   
    $this->load->view('templates/footer');

答案 1 :(得分:0)

删除$config['use_page_numbers'] = TRUE;,然后检查。

为什么你有两条路线:

$route['news/(:any)'] = 'news/index/$1'; //explain what does it actually means?
$route['news'] = 'news';