简体   繁体   English

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

[英]When I click to the next page on pagination,it goes to 404 error in codeigniter

In my News.php controller,i'm having the below code:在我的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');
}

In my News_Model.php model,The below code is exists:在我的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();    

 }

My view file index.php shows :我的视图文件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>

In my config.php :在我的config.php

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

If i remove $config['index_page'] = '';如果我删除 $config['index_page'] = ''; my other pages are not displayed.我的其他页面不显示。

In my route.php :在我的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';

 ?>

The above code displays like follow:上面的代码显示如下:

在此处输入图片说明

But when i click page 2 it shows as :但是当我点击page 2它显示为:在此处输入图片说明

Please don't suggest Link1 , Link2 and Link3 .I have seen the above links but no idea how to get it:(请不要建议Link1Link2Link3 。我已经看到了上面的链接,但不知道如何获得它:(

Kindly guide me!!请指导我!!

in config.php在 config.php

$config['base_url'] = 'https://stackoverflow.com/';
$config['index_page'] = '';

in your router在您的路由器中

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

and place .htaccess并放置 .htaccess

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

EDIT 01编辑 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');

Remove $config['use_page_numbers'] = TRUE;删除$config['use_page_numbers'] = TRUE; and then check.然后检查。

Also why you have 2 routes :还有为什么你有 2 条路线:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM